From: Raymond Hettinger Date: Wed, 7 May 2003 00:49:40 +0000 (+0000) Subject: SF patch #729395: Dictionary tuning X-Git-Tag: v2.3c1~826 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c8d2290c8c5111b2b735482fab6cd2c47a6a8977;p=python SF patch #729395: Dictionary tuning Adjust resize argument for dict.update() and dict.copy(). Extends the previous change to dict.__setitem__(). --- diff --git a/Objects/dictobject.c b/Objects/dictobject.c index f3adc0bfdc..c4959ff8e7 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -1151,7 +1151,7 @@ PyDict_Merge(PyObject *a, PyObject *b, int override) * that there will be no (or few) overlapping keys. */ if ((mp->ma_fill + other->ma_used)*3 >= (mp->ma_mask+1)*2) { - if (dictresize(mp, (mp->ma_used + other->ma_used)*3/2) != 0) + if (dictresize(mp, (mp->ma_used + other->ma_used)*2) != 0) return -1; } for (i = 0; i <= other->ma_mask; i++) { @@ -1236,7 +1236,7 @@ PyDict_Copy(PyObject *o) if (copy == NULL) return NULL; if (mp->ma_used > 0) { - if (dictresize(copy, mp->ma_used*3/2) != 0) + if (dictresize(copy, mp->ma_used*2) != 0) return NULL; for (i = 0; i <= mp->ma_mask; i++) { entry = &mp->ma_table[i];