]> granicus.if.org Git - python/commitdiff
Keep the definition of i consistent between set_lookkey() and set_insert_clean().
authorRaymond Hettinger <python@rcn.com>
Sat, 31 Jan 2015 10:45:12 +0000 (02:45 -0800)
committerRaymond Hettinger <python@rcn.com>
Sat, 31 Jan 2015 10:45:12 +0000 (02:45 -0800)
Objects/setobject.c

index 7236dd57c65197fdbbc3c0b0093df28233eacedc..021b83eb7429f35e58de67ee61772346c47b4ace 100644 (file)
@@ -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;
     }