diff options
-rw-r--r-- | Objects/dictobject.c | 7 | ||||
-rw-r--r-- | Objects/mappingobject.c | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 42e68d8..f655828 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -129,12 +129,13 @@ lookmapping(mp, key, hash) register int i, incr; register unsigned long sum = (unsigned long) hash; register mappingentry *freeslot = NULL; + register int size = mp->ma_size; /* We must come up with (i, incr) such that 0 <= i < ma_size and 0 < incr < ma_size and both are a function of hash */ - i = sum % mp->ma_size; + i = sum % size; do { sum = 3*sum + 1; - incr = sum % mp->ma_size; + incr = sum % size; } while (incr == 0); for (;;) { register mappingentry *ep = &mp->ma_table[i]; @@ -152,7 +153,7 @@ lookmapping(mp, key, hash) cmpobject(ep->me_key, key) == 0) { return ep; } - i = (i + incr) % mp->ma_size; + i = (i + incr) % size; } } diff --git a/Objects/mappingobject.c b/Objects/mappingobject.c index 42e68d8..f655828 100644 --- a/Objects/mappingobject.c +++ b/Objects/mappingobject.c @@ -129,12 +129,13 @@ lookmapping(mp, key, hash) register int i, incr; register unsigned long sum = (unsigned long) hash; register mappingentry *freeslot = NULL; + register int size = mp->ma_size; /* We must come up with (i, incr) such that 0 <= i < ma_size and 0 < incr < ma_size and both are a function of hash */ - i = sum % mp->ma_size; + i = sum % size; do { sum = 3*sum + 1; - incr = sum % mp->ma_size; + incr = sum % size; } while (incr == 0); for (;;) { register mappingentry *ep = &mp->ma_table[i]; @@ -152,7 +153,7 @@ lookmapping(mp, key, hash) cmpobject(ep->me_key, key) == 0) { return ep; } - i = (i + incr) % mp->ma_size; + i = (i + incr) % size; } } |