]> granicus.if.org Git - python/commitdiff
Merged revisions 79809 via svnmerge from
authorMark Dickinson <dickinsm@gmail.com>
Tue, 6 Apr 2010 10:29:17 +0000 (10:29 +0000)
committerMark Dickinson <dickinsm@gmail.com>
Tue, 6 Apr 2010 10:29:17 +0000 (10:29 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r79809 | mark.dickinson | 2010-04-05 19:54:51 +0100 (Mon, 05 Apr 2010) | 1 line

  Use a better NaN test in _Py_HashDouble as well.
........

Objects/object.c

index 0b22e380e786f45ee2ba9badcb0317b1fa1e6b1b..4d3d6590cced339df27c642dc668d74f5bc8c188 100644 (file)
@@ -656,9 +656,12 @@ _Py_HashDouble(double v)
         * of mapping keys will turn out weird.
         */
 
-       if (Py_IS_INFINITY(v))
-               /* can't convert to long int -- arbitrary */
-               v = v < 0 ? -271828.0 : 314159.0;
+       if (!Py_IS_FINITE(v)) {
+               if (Py_IS_INFINITY(v))
+                       return v < 0 ? -271828 : 314159;
+               else
+                       return 0;
+       }
        fractpart = modf(v, &intpart);
        if (fractpart == 0.0) {
                /* This must return the same hash as an equal int or long. */