Title: [115775] branches/subpixellayout/Source/WebCore/platform/FractionalLayoutUnit.h
Revision
115775
Author
[email protected]
Date
2012-05-01 18:24:26 -0700 (Tue, 01 May 2012)

Log Message

Changing the asserts in FractionalLayoutUnit to stderr logs.

Modified Paths


Diff

Modified: branches/subpixellayout/Source/WebCore/platform/FractionalLayoutUnit.h (115774 => 115775)


--- branches/subpixellayout/Source/WebCore/platform/FractionalLayoutUnit.h	2012-05-02 01:23:10 UTC (rev 115774)
+++ branches/subpixellayout/Source/WebCore/platform/FractionalLayoutUnit.h	2012-05-02 01:24:26 UTC (rev 115775)
@@ -38,6 +38,20 @@
 
 namespace WebCore {
 
+#ifdef NDEBUG
+
+#define REPORT_OVERFLOW(doesOverflow) ((void)0)
+
+#else
+
+#define REPORT_OVERFLOW(doesOverflow) do \
+    if (!(doesOverflow)) { \
+        WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, "!%s", #doesOverflow); \
+    } \
+while (0)
+
+#endif
+
 #if ENABLE(SUBPIXEL_LAYOUT)
 static const int kFixedPointDenominator = 60;
 #else
@@ -53,15 +67,15 @@
     // See https://bugs.webkit.org/show_bug.cgi?id=83848 for details.
     
     FractionalLayoutUnit() : m_value(0) { }
-    FractionalLayoutUnit(int value) { ASSERT(isInBounds(value)); m_value = value * kFixedPointDenominator; }
-    FractionalLayoutUnit(unsigned short value) { ASSERT(isInBounds(value)); m_value = value * kFixedPointDenominator; }
-    FractionalLayoutUnit(unsigned int value) { ASSERT(isInBounds(value)); m_value = value * kFixedPointDenominator; }
-    FractionalLayoutUnit(float value) { ASSERT(isInBounds(value)); m_value = value * kFixedPointDenominator; }
-    FractionalLayoutUnit(double value) { ASSERT(isInBounds(value)); m_value = value * kFixedPointDenominator; }
+    FractionalLayoutUnit(int value) { REPORT_OVERFLOW(isInBounds(value)); m_value = value * kFixedPointDenominator; }
+    FractionalLayoutUnit(unsigned short value) { REPORT_OVERFLOW(isInBounds(value)); m_value = value * kFixedPointDenominator; }
+    FractionalLayoutUnit(unsigned int value) { REPORT_OVERFLOW(isInBounds(value)); m_value = value * kFixedPointDenominator; }
+    FractionalLayoutUnit(float value) { REPORT_OVERFLOW(isInBounds(value)); m_value = value * kFixedPointDenominator; }
+    FractionalLayoutUnit(double value) { REPORT_OVERFLOW(isInBounds(value)); m_value = value * kFixedPointDenominator; }
     FractionalLayoutUnit(const FractionalLayoutUnit& value) { m_value = value.rawValue(); }
 
     inline int toInt() const { return m_value / kFixedPointDenominator; }
-    inline unsigned toUnsigned() const { ASSERT(m_value >= 0); return toInt(); }
+    inline unsigned toUnsigned() const { REPORT_OVERFLOW(m_value >= 0); return toInt(); }
     inline float toFloat() const { return static_cast<float>(m_value) / kFixedPointDenominator; }
     inline double toDouble() const { return static_cast<double>(m_value) / kFixedPointDenominator; }
 
@@ -81,7 +95,7 @@
     inline void setRawValue(int value) { m_value = value; }
     inline void setRawValue(long long value)
     {
-        ASSERT(value > std::numeric_limits<int>::min() && value < std::numeric_limits<int>::max());
+        REPORT_OVERFLOW(value > std::numeric_limits<int>::min() && value < std::numeric_limits<int>::max());
         m_value = static_cast<int>(value);
     }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to