From c8d2290c8c5111b2b735482fab6cd2c47a6a8977 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Wed, 7 May 2003 00:49:40 +0000 Subject: [PATCH] SF patch #729395: Dictionary tuning Adjust resize argument for dict.update() and dict.copy(). Extends the previous change to dict.__setitem__(). --- Objects/dictobject.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Objects/dictobject.c b/Objects/dictobject.c index f3adc0bfdc0..c4959ff8e78 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];