Skip to content

Commit 4897300

Browse files
committed
Minor factoring: move redundant resize scaling logic into the resize function.
1 parent 3c1f52e commit 4897300

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

Objects/setobject.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ set_insert_key(PySetObject *so, PyObject *key, Py_hash_t hash)
226226
entry->hash = hash;
227227
if ((size_t)so->fill*3 < mask*2)
228228
return 0;
229-
return set_table_resize(so, so->used>50000 ? so->used*2 : so->used*4);
229+
return set_table_resize(so, so->used);
230230

231231
found_active:
232232
return 0;
@@ -290,6 +290,7 @@ set_table_resize(PySetObject *so, Py_ssize_t minused)
290290
setentry small_copy[PySet_MINSIZE];
291291

292292
assert(minused >= 0);
293+
minused = (minused > 50000) ? minused * 2 : minused * 4;
293294

294295
/* Find the smallest table size > minused. */
295296
/* XXX speed-up with intrinsics */
@@ -616,7 +617,7 @@ set_merge(PySetObject *so, PyObject *otherset)
616617
* that there will be no (or few) overlapping keys.
617618
*/
618619
if ((so->fill + other->used)*3 >= so->mask*2) {
619-
if (set_table_resize(so, (so->used + other->used)*2) != 0)
620+
if (set_table_resize(so, so->used + other->used) != 0)
620621
return -1;
621622
}
622623
so_entry = so->table;
@@ -965,7 +966,7 @@ set_update_internal(PySetObject *so, PyObject *other)
965966
if (dictsize == -1)
966967
return -1;
967968
if ((so->fill + dictsize)*3 >= so->mask*2) {
968-
if (set_table_resize(so, (so->used + dictsize)*2) != 0)
969+
if (set_table_resize(so, so->used + dictsize) != 0)
969970
return -1;
970971
}
971972
while (_PyDict_Next(other, &pos, &key, &value, &hash)) {
@@ -1508,7 +1509,7 @@ set_difference_update_internal(PySetObject *so, PyObject *other)
15081509
/* If more than 1/5 are dummies, then resize them away. */
15091510
if ((so->fill - so->used) * 5 < so->mask)
15101511
return 0;
1511-
return set_table_resize(so, so->used>50000 ? so->used*2 : so->used*4);
1512+
return set_table_resize(so, so->used);
15121513
}
15131514

15141515
static PyObject *

0 commit comments

Comments
 (0)