Minor factoring: move redundant resize scaling logic into the resize… · python/cpython@4897300 (original) (raw)
`@@ -226,7 +226,7 @@ set_insert_key(PySetObject *so, PyObject *key, Py_hash_t hash)
`
226
226
`entry->hash = hash;
`
227
227
`if ((size_t)so->fill3 < mask2)
`
228
228
`return 0;
`
229
``
`-
return set_table_resize(so, so->used>50000 ? so->used2 : so->used4);
`
``
229
`+
return set_table_resize(so, so->used);
`
230
230
``
231
231
`found_active:
`
232
232
`return 0;
`
`@@ -290,6 +290,7 @@ set_table_resize(PySetObject *so, Py_ssize_t minused)
`
290
290
`setentry small_copy[PySet_MINSIZE];
`
291
291
``
292
292
`assert(minused >= 0);
`
``
293
`+
minused = (minused > 50000) ? minused * 2 : minused * 4;
`
293
294
``
294
295
`/* Find the smallest table size > minused. */
`
295
296
`/* XXX speed-up with intrinsics */
`
`@@ -616,7 +617,7 @@ set_merge(PySetObject *so, PyObject *otherset)
`
616
617
` * that there will be no (or few) overlapping keys.
`
617
618
` */
`
618
619
`if ((so->fill + other->used)3 >= so->mask2) {
`
619
``
`-
if (set_table_resize(so, (so->used + other->used)*2) != 0)
`
``
620
`+
if (set_table_resize(so, so->used + other->used) != 0)
`
620
621
`return -1;
`
621
622
` }
`
622
623
`so_entry = so->table;
`
`@@ -965,7 +966,7 @@ set_update_internal(PySetObject *so, PyObject *other)
`
965
966
`if (dictsize == -1)
`
966
967
`return -1;
`
967
968
`if ((so->fill + dictsize)3 >= so->mask2) {
`
968
``
`-
if (set_table_resize(so, (so->used + dictsize)*2) != 0)
`
``
969
`+
if (set_table_resize(so, so->used + dictsize) != 0)
`
969
970
`return -1;
`
970
971
` }
`
971
972
`while (_PyDict_Next(other, &pos, &key, &value, &hash)) {
`
`@@ -1508,7 +1509,7 @@ set_difference_update_internal(PySetObject *so, PyObject *other)
`
1508
1509
`/* If more than 1/5 are dummies, then resize them away. */
`
1509
1510
`if ((so->fill - so->used) * 5 < so->mask)
`
1510
1511
`return 0;
`
1511
``
`-
return set_table_resize(so, so->used>50000 ? so->used2 : so->used4);
`
``
1512
`+
return set_table_resize(so, so->used);
`
1512
1513
`}
`
1513
1514
``
1514
1515
`static PyObject *
`