Reviewed by Darin.
authorandersca <andersca@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 19 Jun 2007 20:45:59 +0000 (20:45 +0000)
committerandersca <andersca@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 19 Jun 2007 20:45:59 +0000 (20:45 +0000)
        <rdar://problem/5130630>
        XPath fails LayoutTests on Windows

        * xml/XPathPredicate.cpp:
        Include MathExtras.h here so we get a version of fmod that works around a bug in the Microsoft CRT.

        * xml/XPathValue.cpp:
        (WebCore::XPath::Value::toNumber):
        Instead of using NAN, which isn't really the NaN value on Windows, use numeric_limits.

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

WebCore/ChangeLog
WebCore/xml/XPathPredicate.cpp
WebCore/xml/XPathValue.cpp

index eadda95..115a4e5 100644 (file)
@@ -1,3 +1,17 @@
+2007-06-19  Anders Carlsson  <andersca@apple.com>
+
+        Reviewed by Darin.
+
+        <rdar://problem/5130630>
+        XPath fails LayoutTests on Windows
+        
+        * xml/XPathPredicate.cpp:
+        Include MathExtras.h here so we get a version of fmod that works around a bug in the Microsoft CRT.
+        
+        * xml/XPathValue.cpp:
+        (WebCore::XPath::Value::toNumber):
+        Instead of using NAN, which isn't really the NaN value on Windows, use numeric_limits.
+        
 2007-06-19  Geoffrey Garen  <ggaren@apple.com>
 
         Reviewed by Darin Adler.
index a8a15dc..7b3e4d8 100644 (file)
 #include "XPathUtil.h"
 #include "XPathValue.h"
 #include <math.h>
-
-#ifdef _MSC_VER // math functions missing from Microsoft Visual Studio standard C library
-#define remainder(x, y) fmod((x), (y))
-#endif
+#include <wtf/MathExtras.h>
 
 namespace WebCore {
 namespace XPath {
index 49683c1..b21942f 100644 (file)
@@ -33,7 +33,9 @@
 #include "XPathUtil.h"
 
 #include <wtf/MathExtras.h>
-#include <math.h>
+#include <limits>
+
+using std::numeric_limits;
 
 namespace WebCore {
 namespace XPath {
@@ -87,7 +89,7 @@ double Value::toNumber() const
             double value = m_data->m_string.simplifyWhiteSpace().toDouble(&canConvert);
             if (canConvert)
                 return value;
-            return NAN;
+            return numeric_limits<double>::quiet_NaN();
         }
         case BooleanValue:
             return m_bool;