[pypy-commit] pypy default: fix hashing of float tuples
cfbolz
pypy.commits at gmail.com
Sat Aug 5 16:50:39 EDT 2017
Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch:
Changeset: r92094:5c090931a660
Date: 2017-08-05 22:50 +0200
http://bitbucket.org/pypy/pypy/changeset/5c090931a660/
Log: fix hashing of float tuples
diff --git a/pypy/objspace/std/specialisedtupleobject.py b/pypy/objspace/std/specialisedtupleobject.py
--- a/pypy/objspace/std/specialisedtupleobject.py
+++ b/pypy/objspace/std/specialisedtupleobject.py
@@ -80,8 +80,9 @@
# integer & other less frequent cases
from pypy.objspace.std.floatobject import _hash_float
y = _hash_float(space, value)
+ y -= (y == -1)
else:
- y = compute_hash(value)
+ assert 0, "unreachable"
x = (x ^ y) * mult
z -= 1
mult += 82520 + z + z
diff --git a/pypy/objspace/std/test/test_specialisedtupleobject.py b/pypy/objspace/std/test/test_specialisedtupleobject.py
--- a/pypy/objspace/std/test/test_specialisedtupleobject.py
+++ b/pypy/objspace/std/test/test_specialisedtupleobject.py
@@ -38,6 +38,7 @@
self.space.hash(S_w_tuple)))
hash_test([-1, -1])
+ hash_test([-1.0, -1.0])
hash_test([1, 2])
hash_test([1.5, 2.8])
hash_test([1.0, 2.0])
More information about the pypy-commit
mailing list