From 77b3ae5e2cfdd7ddacf320dc295f2518c79860e7 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Wed, 13 May 2015 03:13:28 -0700 Subject: Issue #23971: Fix underestimated presizing in dict.fromkeys() --- Misc/NEWS | 2 ++ Objects/dictobject.c | 4 ++-- 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; } -- cgit v0.12