diff options
| author | Tim Peters <tim.peters@gmail.com> | 2002-12-06 23:38:02 +0000 |
|---|---|---|
| committer | Tim Peters <tim.peters@gmail.com> | 2002-12-06 23:38:02 +0000 |
| commit | 61ce0a9bae6e97f25034370eda2fe87ef654e434 (patch) | |
| tree | c89eef31b5b43e07dc904db7388a031c752e13ef /Objects/typeobject.c | |
| parent | ead60e5d1c24f4bd2f53b7994d4240735cc11453 (diff) | |
| download | cpython-git-61ce0a9bae6e97f25034370eda2fe87ef654e434.tar.gz | |
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.
Diffstat (limited to 'Objects/typeobject.c')
| -rw-r--r-- | Objects/typeobject.c | 6 |
1 files changed, 3 insertions, 3 deletions
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(); |
