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 *

`