@@ -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
15141515static PyObject *
0 commit comments