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:
parent
ead60e5d1c
commit
61ce0a9bae
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue