# HG changeset patch # Parent 5c4b005811981afa49c079c09c7aaa872733891a fix reference leak in dict_setdefault() if resizing fails diff -r 5c4b00581198 Objects/dictobject.c --- a/Objects/dictobject.c Fri Feb 08 11:24:55 2013 +0200 +++ b/Objects/dictobject.c Fri Mar 01 14:58:13 2013 +0100 @@ -2235,14 +2235,14 @@ return NULL; val = *value_addr; if (val == NULL) { - Py_INCREF(failobj); - Py_INCREF(key); if (mp->ma_keys->dk_usable <= 0) { /* Need to resize. */ if (insertion_resize(mp) < 0) return NULL; ep = find_empty_slot(mp, key, hash, &value_addr); } + Py_INCREF(failobj); + Py_INCREF(key); MAINTAIN_TRACKING(mp, key, failobj); ep->me_key = key; ep->me_hash = hash;