diff -r cc88969d55ba Objects/dictobject.c --- a/Objects/dictobject.c Wed Sep 21 09:16:31 2016 +0200 +++ b/Objects/dictobject.c Wed Sep 21 09:20:05 2016 +0000 @@ -630,7 +630,7 @@ static Py_ssize_t lookdict_index(PyDictKeysObject *k, Py_hash_t hash, Py_ssize_t index) { - size_t i, perturb; + size_t i; size_t mask = DK_MASK(k); Py_ssize_t ix; @@ -643,7 +643,7 @@ return DKIX_EMPTY; } - for (perturb = hash; ; perturb >>= PERTURB_SHIFT) { + for (size_t perturb = hash >> PERTURB_SHIFT; ; perturb >>= PERTURB_SHIFT) { i = mask & ((i << 2) + i + perturb + 1); ix = dk_get_index(k, i); if (ix == index) { @@ -685,7 +685,7 @@ lookdict(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject ***value_addr, Py_ssize_t *hashpos) { - size_t i, perturb, mask; + size_t i, mask; Py_ssize_t ix, freeslot; int cmp; PyDictKeysObject *dk; @@ -739,7 +739,7 @@ freeslot = -1; } - for (perturb = hash; ; perturb >>= PERTURB_SHIFT) { + for (size_t perturb = hash >> PERTURB_SHIFT; ; perturb >>= PERTURB_SHIFT) { i = ((i << 2) + i + perturb + 1) & mask; ix = dk_get_index(dk, i); if (ix == DKIX_EMPTY) { @@ -795,7 +795,7 @@ lookdict_unicode(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject ***value_addr, Py_ssize_t *hashpos) { - size_t i, perturb; + size_t i; size_t mask = DK_MASK(mp->ma_keys); Py_ssize_t ix, freeslot; PyDictKeyEntry *ep, *ep0 = DK_ENTRIES(mp->ma_keys); @@ -824,7 +824,8 @@ ep = &ep0[ix]; /* only split table can be ix != DKIX_DUMMY && me_key == NULL */ assert(ep->me_key != NULL); - if (ep->me_key == key || (ep->me_hash == hash && unicode_eq(ep->me_key, key))) { + if (ep->me_key == key + || (ep->me_hash == hash && unicode_eq(ep->me_key, key))) { if (hashpos != NULL) *hashpos = i; *value_addr = &ep->me_value; @@ -833,7 +834,7 @@ freeslot = -1; } - for (perturb = hash; ; perturb >>= PERTURB_SHIFT) { + for (size_t perturb = hash >> PERTURB_SHIFT; ; perturb >>= PERTURB_SHIFT) { i = mask & ((i << 2) + i + perturb + 1); ix = dk_get_index(mp->ma_keys, i); if (ix == DKIX_EMPTY) { @@ -871,7 +872,7 @@ Py_hash_t hash, PyObject ***value_addr, Py_ssize_t *hashpos) { - size_t i, perturb; + size_t i; size_t mask = DK_MASK(mp->ma_keys); Py_ssize_t ix; PyDictKeyEntry *ep, *ep0 = DK_ENTRIES(mp->ma_keys); @@ -904,7 +905,7 @@ *value_addr = &ep->me_value; return ix; } - for (perturb = hash; ; perturb >>= PERTURB_SHIFT) { + for (size_t perturb = hash >> PERTURB_SHIFT; ; perturb >>= PERTURB_SHIFT) { i = mask & ((i << 2) + i + perturb + 1); ix = dk_get_index(mp->ma_keys, i); assert (ix != DKIX_DUMMY); @@ -937,7 +938,7 @@ lookdict_split(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject ***value_addr, Py_ssize_t *hashpos) { - size_t i, perturb; + size_t i; size_t mask = DK_MASK(mp->ma_keys); Py_ssize_t ix; PyDictKeyEntry *ep, *ep0 = DK_ENTRIES(mp->ma_keys); @@ -970,7 +971,7 @@ *value_addr = &mp->ma_values[ix]; return ix; } - for (perturb = hash; ; perturb >>= PERTURB_SHIFT) { + for (size_t perturb = hash >> PERTURB_SHIFT; ; perturb >>= PERTURB_SHIFT) { i = mask & ((i << 2) + i + perturb + 1); ix = dk_get_index(mp->ma_keys, i); if (ix == DKIX_EMPTY) { @@ -1063,7 +1064,7 @@ find_empty_slot(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject ***value_addr, Py_ssize_t *hashpos) { - size_t i, perturb; + size_t i; size_t mask = DK_MASK(mp->ma_keys); Py_ssize_t ix; PyDictKeyEntry *ep, *ep0 = DK_ENTRIES(mp->ma_keys); @@ -1076,7 +1077,8 @@ mp->ma_keys->dk_lookup = lookdict; i = hash & mask; ix = dk_get_index(mp->ma_keys, i); - for (perturb = hash; ix != DKIX_EMPTY; perturb >>= PERTURB_SHIFT) { + for (size_t perturb = hash >> PERTURB_SHIFT; ix != DKIX_EMPTY; + perturb >>= PERTURB_SHIFT) { i = (i << 2) + i + perturb + 1; ix = dk_get_index(mp->ma_keys, i & mask); } @@ -1201,7 +1203,7 @@ insertdict_clean(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject *value) { - size_t i, perturb; + size_t i; PyDictKeysObject *k = mp->ma_keys; size_t mask = (size_t)DK_SIZE(k)-1; PyDictKeyEntry *ep0 = DK_ENTRIES(mp->ma_keys); @@ -1212,8 +1214,8 @@ assert(key != NULL); assert(PyUnicode_CheckExact(key) || k->dk_lookup == lookdict); i = hash & mask; - for (perturb = hash; dk_get_index(k, i) != DKIX_EMPTY; - perturb >>= PERTURB_SHIFT) { + for (size_t perturb = hash >> PERTURB_SHIFT; + dk_get_index(k, i) != DKIX_EMPTY; perturb >>= PERTURB_SHIFT) { i = mask & ((i << 2) + i + perturb + 1); } ep = &ep0[k->dk_nentries];