From d0147a863b872ecaa451ab0dce2a348760e99e2c Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Wed, 13 Jul 2011 10:14:36 +0100 Subject: Merge WebKit at branches/chromium/742 r89068: Initial merge by Git. Take us to top of Chrome 12 release branch (12.0.742.130) Change-Id: I4408a97e343a118cf4a1bb9d71367bcc2c16ae48 --- Source/JavaScriptCore/wtf/MathExtras.h | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'Source/JavaScriptCore/wtf') diff --git a/Source/JavaScriptCore/wtf/MathExtras.h b/Source/JavaScriptCore/wtf/MathExtras.h index fac187c..f1b13a5 100644 --- a/Source/JavaScriptCore/wtf/MathExtras.h +++ b/Source/JavaScriptCore/wtf/MathExtras.h @@ -220,17 +220,27 @@ inline int clampToPositiveInteger(double d) return static_cast(std::max(std::min(d, maxIntAsDouble), 0)); } -inline int clampToInteger(float d) +inline int clampToInteger(float x) { - const float minIntAsFloat = static_cast(std::numeric_limits::min()); - const float maxIntAsFloat = static_cast(std::numeric_limits::max()); - return static_cast(std::max(std::min(d, maxIntAsFloat), minIntAsFloat)); + static const int s_intMax = std::numeric_limits::max(); + static const int s_intMin = std::numeric_limits::min(); + + if (x >= static_cast(s_intMax)) + return s_intMax; + if (x < static_cast(s_intMin)) + return s_intMin; + return static_cast(x); } -inline int clampToPositiveInteger(float d) +inline int clampToPositiveInteger(float x) { - const float maxIntAsFloat = static_cast(std::numeric_limits::max()); - return static_cast(std::max(std::min(d, maxIntAsFloat), 0)); + static const int s_intMax = std::numeric_limits::max(); + + if (x >= static_cast(s_intMax)) + return s_intMax; + if (x < 0) + return 0; + return static_cast(x); } inline int clampToInteger(unsigned value) -- cgit v1.1