size_t mask = so->mask;
size_t i = (size_t)hash; /* Unsigned for defined overflow behavior. */
int cmp;
-#if LINEAR_PROBES
size_t j;
-#endif
entry = &table[i & mask];
if (entry->key == NULL)
if (entry->key == dummy && freeslot == NULL)
freeslot = entry;
-#if LINEAR_PROBES
for (j = 1 ; j <= LINEAR_PROBES ; j++) {
entry = &table[(i + j) & mask];
if (entry->key == NULL)
if (entry->key == dummy && freeslot == NULL)
freeslot = entry;
}
-#endif
perturb >>= PERTURB_SHIFT;
i = i * 5 + 1 + perturb;
size_t perturb = hash;
size_t mask = so->mask;
size_t i = (size_t)hash;
-#if LINEAR_PROBES
size_t j;
-#endif
/* Make sure this function doesn't have to handle non-unicode keys,
including subclasses of str; e.g., one reason to subclass
if (entry->key == dummy && freeslot == NULL)
freeslot = entry;
-#if LINEAR_PROBES
for (j = 1 ; j <= LINEAR_PROBES ; j++) {
entry = &table[(i + j) & mask];
if (entry->key == NULL)
if (entry->key == dummy && freeslot == NULL)
freeslot = entry;
}
-#endif
perturb >>= PERTURB_SHIFT;
i = i * 5 + 1 + perturb;
size_t perturb = hash;
size_t mask = (size_t)so->mask;
size_t i = (size_t)hash;
-#if LINEAR_PROBES
size_t j;
-#endif
while (1) {
entry = &table[i & mask];
if (entry->key == NULL)
goto found_null;
-#if LINEAR_PROBES
for (j = 1 ; j <= LINEAR_PROBES ; j++) {
entry = &table[(i + j) & mask];
if (entry->key == NULL)
goto found_null;
}
-#endif
perturb >>= PERTURB_SHIFT;
i = i * 5 + 1 + perturb;
}