Fix Windows build by converting clampToInteger() into a template that only
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Apr 2016 01:46:53 +0000 (01:46 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Apr 2016 01:46:53 +0000 (01:46 +0000)
takes integral types.

* wtf/MathExtras.h:
(clampToInteger):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@199133 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WTF/ChangeLog
Source/WTF/wtf/MathExtras.h

index 481ef4a..d49539d 100644 (file)
@@ -1,5 +1,13 @@
 2016-04-06  Simon Fraser  <simon.fraser@apple.com>
 
+        Fix Windows build by converting clampToInteger() into a template that only
+        takes integral types.
+
+        * wtf/MathExtras.h:
+        (clampToInteger):
+
+2016-04-06  Simon Fraser  <simon.fraser@apple.com>
+
         Page tiles are missing when graphics acceleration is unavailable
         https://bugs.webkit.org/show_bug.cgi?id=156325
 
index c5bf25c..dc69385 100644 (file)
@@ -181,18 +181,12 @@ inline int clampToInteger(float value)
     return clampTo<int>(value);
 }
 
-inline int clampToInteger(unsigned x)
+template<typename T>
+inline int clampToInteger(T x)
 {
-    const unsigned intMax = static_cast<unsigned>(std::numeric_limits<int>::max());
+    static_assert(std::numeric_limits<T>::is_integer, "T must be an integer.");
 
-    if (x >= intMax)
-        return std::numeric_limits<int>::max();
-    return static_cast<int>(x);
-}
-
-inline int clampToInteger(size_t x)
-{
-    const size_t intMax = static_cast<size_t>(std::numeric_limits<int>::max());
+    const T intMax = static_cast<unsigned>(std::numeric_limits<int>::max());
 
     if (x >= intMax)
         return std::numeric_limits<int>::max();