From: Guido van Rossum Date: Tue, 30 Jul 1996 16:45:31 +0000 (+0000) Subject: Speedup suggested by Sjoerd X-Git-Tag: v1.4b2~132 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=310968dc06e5f1631b38fc86ca46e61330e60cc5;p=python Speedup suggested by Sjoerd --- diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 42e68d8007..f6558283ed 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 42e68d8007..f6558283ed 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; } }