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