summaryrefslogtreecommitdiffstats
path: root/Objects/longobject.c
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2000-08-15 03:34:48 (GMT)
committerTim Peters <tim.peters@gmail.com>2000-08-15 03:34:48 (GMT)
commit39dce29365d287dc6b353b2a527dc11fe58dcfa6 (patch)
treef24a592be4c36c5d1888fb0881e8535bf023e41b /Objects/longobject.c
parent7aced17437a6b05bc4b0b5ff93aa6a5d3a374d68 (diff)
downloadcpython-39dce29365d287dc6b353b2a527dc11fe58dcfa6.zip
cpython-39dce29365d287dc6b353b2a527dc11fe58dcfa6.tar.gz
cpython-39dce29365d287dc6b353b2a527dc11fe58dcfa6.tar.bz2
Fix for http://sourceforge.net/bugs/?func=detailbug&bug_id=111866&group_id=5470.
This was a misleading bug -- the true "bug" was that hash(x) gave an error return when x is an infinity. Fixed that. Added new Py_IS_INFINITY macro to pyport.h. Rearranged code to reduce growing duplication in hashing of float and complex numbers, pushing Trent's earlier stab at that to a logical conclusion. Fixed exceedingly rare bug where hashing of floats could return -1 even if there wasn't an error (didn't waste time trying to construct a test case, it was simply obvious from the code that it *could* happen). Improved complex hash so that hash(complex(x, y)) doesn't systematically equal hash(complex(y, x)) anymore.
Diffstat (limited to 'Objects/longobject.c')
-rw-r--r--Objects/longobject.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 37da244..86b4aba 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -114,7 +114,7 @@ PyLong_FromDouble(double dval)
double frac;
int i, ndig, expo, neg;
neg = 0;
- if (dval && dval * 0.5 == dval) {
+ if (Py_IS_INFINITY(dval)) {
PyErr_SetString(PyExc_OverflowError,
"cannot convert float infinity to long");
return NULL;