Make the linear probe sequence clearer.

This commit is contained in:
Raymond Hettinger 2013-09-21 14:02:55 -07:00
parent 1eb87629cd
commit c70a2b7bb9
1 changed files with 4 additions and 8 deletions

View File

@ -62,7 +62,6 @@ set_lookkey(PySetObject *so, PyObject *key, Py_hash_t hash)
size_t i = (size_t)hash; /* Unsigned for defined overflow behavior. */ size_t i = (size_t)hash; /* Unsigned for defined overflow behavior. */
int cmp; int cmp;
#if LINEAR_PROBES #if LINEAR_PROBES
setentry *limit;
size_t j; size_t j;
#endif #endif
@ -89,9 +88,8 @@ set_lookkey(PySetObject *so, PyObject *key, Py_hash_t hash)
freeslot = entry; freeslot = entry;
#if LINEAR_PROBES #if LINEAR_PROBES
limit = &table[mask]; for (j = 1 ; j <= LINEAR_PROBES ; j++) {
for (j = 0 ; j < LINEAR_PROBES ; j++) { entry = &table[(i + j) & mask];
entry = (entry == limit) ? &table[0] : entry + 1;
if (entry->key == NULL) if (entry->key == NULL)
goto found_null; goto found_null;
if (entry->key == key) if (entry->key == key)
@ -139,7 +137,6 @@ set_lookkey_unicode(PySetObject *so, PyObject *key, Py_hash_t hash)
size_t mask = so->mask; size_t mask = so->mask;
size_t i = (size_t)hash; size_t i = (size_t)hash;
#if LINEAR_PROBES #if LINEAR_PROBES
setentry *limit;
size_t j; size_t j;
#endif #endif
@ -166,9 +163,8 @@ set_lookkey_unicode(PySetObject *so, PyObject *key, Py_hash_t hash)
freeslot = entry; freeslot = entry;
#if LINEAR_PROBES #if LINEAR_PROBES
limit = &table[mask]; for (j = 1 ; j <= LINEAR_PROBES ; j++) {
for (j = 0 ; j < LINEAR_PROBES ; j++) { entry = &table[(i + j) & mask];
entry = (entry == limit) ? &table[0] : entry + 1;
if (entry->key == NULL) if (entry->key == NULL)
goto found_null; goto found_null;
if (entry->key == key if (entry->key == key