From 0ffaaa634d59d24d2707adec7ff395f6fe51bb04 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Wed, 27 May 2009 03:18:19 +0000 Subject: [PATCH] Merged revisions 72958 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r72958 | benjamin.peterson | 2009-05-26 22:08:44 -0500 (Tue, 26 May 2009) | 1 line plug ref leak ........ --- Objects/dictobject.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 97fa60b2221..f21cea24c3d 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -1126,14 +1126,17 @@ dict_subscript(PyDictObject *mp, register PyObject *key) if (v == NULL) { if (!PyDict_CheckExact(mp)) { /* Look up __missing__ method if we're a subclass. */ - PyObject *missing; + PyObject *missing, *res; static PyObject *missing_str = NULL; missing = _PyObject_LookupSpecial((PyObject *)mp, "__missing__", &missing_str); - if (missing != NULL) - return PyObject_CallFunctionObjArgs(missing, - key, NULL); + if (missing != NULL) { + res = PyObject_CallFunctionObjArgs(missing, + key, NULL); + Py_DECREF(missing); + return res; + } else if (PyErr_Occurred()) return NULL; }