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.
This commit is contained in:
Tim Peters 2002-12-06 23:38:02 +00:00
parent ead60e5d1c
commit 61ce0a9bae
1 changed files with 3 additions and 3 deletions

View File

@ -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();