dict_update has two boundary conditions: a.update(a) and a.update({})
Added test for second one.
This commit is contained in:
parent
db60bb5aad
commit
1fb6088e86
|
@ -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. */
|
||||||
|
|
Loading…
Reference in New Issue