dict_update has two boundary conditions: a.update(a) and a.update({})

Added test for second one.
This commit is contained in:
Jeremy Hylton 2001-01-03 22:34:59 +00:00
parent db60bb5aad
commit 1fb6088e86
1 changed files with 2 additions and 2 deletions

View File

@ -809,8 +809,8 @@ dict_update(register dictobject *mp, PyObject *args)
dictentry *entry; dictentry *entry;
if (!PyArg_Parse(args, "O!", &PyDict_Type, &other)) if (!PyArg_Parse(args, "O!", &PyDict_Type, &other))
return NULL; return NULL;
if (other == mp) if (other == mp || other->ma_used == 0)
goto done; /* a.update(a); nothing to do */ goto done; /* a.update(a) or a.update({}); nothing to do */
/* Do one big resize at the start, rather than incrementally /* Do one big resize at the start, rather than incrementally
resizing as we insert new items. Expect that there will be resizing as we insert new items. Expect that there will be
no (or few) overlapping keys. */ no (or few) overlapping keys. */