summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2015-05-13 10:13:28 (GMT)
committerRaymond Hettinger <python@rcn.com>2015-05-13 10:13:28 (GMT)
commit77b3ae5e2cfdd7ddacf320dc295f2518c79860e7 (patch)
tree29bf6c6006aba7c9be9a19e86976ad6d014177c9
parentbd049190148df537e055f4975db35574448ed0b2 (diff)
downloadcpython-77b3ae5e2cfdd7ddacf320dc295f2518c79860e7.zip
cpython-77b3ae5e2cfdd7ddacf320dc295f2518c79860e7.tar.gz
cpython-77b3ae5e2cfdd7ddacf320dc295f2518c79860e7.tar.bz2
Issue #23971: Fix underestimated presizing in dict.fromkeys()
-rw-r--r--Misc/NEWS2
-rw-r--r--Objects/dictobject.c4
2 files changed, 4 insertions, 2 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 39de420..bd20dba 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -25,6 +25,8 @@ Core and Builtins
- 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 @@ dict_fromkeys(PyObject *cls, PyObject *args)
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 @@ dict_fromkeys(PyObject *cls, PyObject *args)
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;
}