From: Raymond Hettinger Date: Sat, 31 Jan 2015 10:45:12 +0000 (-0800) Subject: Keep the definition of i consistent between set_lookkey() and set_insert_clean(). X-Git-Tag: v3.5.0a1~68 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=59ecabd12a173e6b176b70ba9a4292adec3ba31d;p=python Keep the definition of i consistent between set_lookkey() and set_insert_clean(). --- diff --git a/Objects/setobject.c b/Objects/setobject.c index 7236dd57c6..021b83eb74 100644 --- a/Objects/setobject.c +++ b/Objects/setobject.c @@ -56,11 +56,11 @@ set_lookkey(PySetObject *so, PyObject *key, Py_hash_t hash) setentry *entry; size_t perturb = hash; size_t mask = so->mask; - size_t i = (size_t)hash; /* Unsigned for defined overflow behavior. */ + size_t i = (size_t)hash & mask; /* Unsigned for defined overflow behavior */ size_t j; int cmp; - entry = &table[i & mask]; + entry = &table[i]; if (entry->key == NULL) return entry; @@ -116,9 +116,9 @@ set_lookkey(PySetObject *so, PyObject *key, Py_hash_t hash) } perturb >>= PERTURB_SHIFT; - i = i * 5 + 1 + perturb; + i = (i * 5 + 1 + perturb) & mask; - entry = &table[i & mask]; + entry = &table[i]; if (entry->key == NULL) goto found_null; }