From 310968dc06e5f1631b38fc86ca46e61330e60cc5 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 30 Jul 1996 16:45:31 +0000 Subject: Speedup suggested by Sjoerd --- Objects/dictobject.c | 7 ++++--- 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; } } -- cgit v0.12