Issue #23971: Fix underestimated presizing in dict.fromkeys()
diff --git a/Misc/NEWS b/Misc/NEWS
index 39de420..bd20dba 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -25,6 +25,8 @@
- Issue #20274: When calling a _sqlite.Connection, it now complains if passed
any keyword arguments. Previously it silently ignored them.
+- Issue #23971: Fix underestimated presizing in dict.fromkeys().
+
- Issue #20274: Remove ignored and erroneous "kwargs" parameters from three
METH_VARARGS methods on _sqlite.Connection.
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 39e7035..50afa3f 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -1361,7 +1361,7 @@
PyObject *key;
long hash;
- if (dictresize(mp, Py_SIZE(seq))) {
+ if (dictresize(mp, Py_SIZE(seq) / 2 * 3)) {
Py_DECREF(d);
return NULL;
}
@@ -1382,7 +1382,7 @@
PyObject *key;
long hash;
- if (dictresize(mp, PySet_GET_SIZE(seq))) {
+ if (dictresize(mp, PySet_GET_SIZE(seq) / 2 * 3)) {
Py_DECREF(d);
return NULL;
}