From: Tim Peters Date: Fri, 6 Dec 2002 23:38:02 +0000 (+0000) Subject: slot_tp_hash(): In the normal path, this leaked a reference to the X-Git-Tag: v2.3c1~3104 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=61ce0a9bae6e97f25034370eda2fe87ef654e434;p=python slot_tp_hash(): In the normal path, this leaked a reference to the integer hash object returned by __hash__(). This accounts for some of the "mystery leaks" in the sandbox datetime tests, but probably not all of them. --- diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 4cfbd49fc4..612944214e 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -3941,19 +3941,19 @@ slot_tp_str(PyObject *self) static long slot_tp_hash(PyObject *self) { - PyObject *func, *res; + PyObject *func; static PyObject *hash_str, *eq_str, *cmp_str; - long h; func = lookup_method(self, "__hash__", &hash_str); if (func != NULL) { - res = PyEval_CallObject(func, NULL); + PyObject *res = PyEval_CallObject(func, NULL); Py_DECREF(func); if (res == NULL) return -1; h = PyInt_AsLong(res); + Py_DECREF(res); } else { PyErr_Clear();