Author: Armin Rigo <[email protected]>
Branch: jit-counter
Changeset: r67766:078369425c4e
Date: 2013-10-31 12:11 +0100
http://bitbucket.org/pypy/pypy/changeset/078369425c4e/
Log: Fix: the hash was miscomputed
diff --git a/rpython/jit/metainterp/warmstate.py
b/rpython/jit/metainterp/warmstate.py
--- a/rpython/jit/metainterp/warmstate.py
+++ b/rpython/jit/metainterp/warmstate.py
@@ -411,7 +411,7 @@
#
jitcounter = self.warmrunnerdesc.jitcounter
jitdriver_sd = self.jitdriver_sd
- green_args_spec = unrolling_iterable([('g%d' % i, TYPE)
+ green_args_name_spec = unrolling_iterable([('g%d' % i, TYPE)
for i, TYPE in enumerate(jitdriver_sd._green_args_spec)])
unwrap_greenkey = self.make_unwrap_greenkey()
random_initial_value = hash(self)
@@ -419,13 +419,13 @@
class JitCell(BaseJitCell):
def __init__(self, *greenargs):
i = 0
- for attrname, _ in green_args_spec:
+ for attrname, _ in green_args_name_spec:
setattr(self, attrname, greenargs[i])
i = i + 1
def comparekey(self, *greenargs2):
i = 0
- for attrname, TYPE in green_args_spec:
+ for attrname, TYPE in green_args_name_spec:
item1 = getattr(self, attrname)
if not equal_whatever(TYPE, item1, greenargs2[i]):
return False
@@ -436,7 +436,7 @@
def get_index(*greenargs):
x = random_initial_value
i = 0
- for TYPE in green_args_spec:
+ for _, TYPE in green_args_name_spec:
item = greenargs[i]
y = hash_whatever(TYPE, item)
x = intmask((x ^ y) * 1405695061) # prime number, 2**30~31
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit