(original) (raw)

changeset: 76838:07b04373aef8 parent: 76835:b32baa5b7626 parent: 76836:d937b527b76e user: Benjamin Peterson benjamin@python.org date: Tue May 08 09:22:45 2012 -0400 files: Objects/typeobject.c description: merge 3.2 (#14752) diff -r b32baa5b7626 -r 07b04373aef8 Objects/typeobject.c --- a/Objects/typeobject.c Tue May 08 03:54:05 2012 -0700 +++ b/Objects/typeobject.c Tue May 08 09:22:45 2012 -0400 @@ -3709,6 +3709,7 @@ for (; meth->ml_name != NULL; meth++) { PyObject *descr; + int err; if (PyDict_GetItemString(dict, meth->ml_name) && !(meth->ml_flags & METH_COEXIST)) continue; @@ -3732,9 +3733,10 @@ } if (descr == NULL) return -1; - if (PyDict_SetItemString(dict, meth->ml_name, descr) < 0) + err = PyDict_SetItemString(dict, meth->ml_name, descr); + Py_DECREF(descr); + if (err < 0) return -1; - Py_DECREF(descr); } return 0; } /benjamin@python.org