From 61ce0a9bae6e97f25034370eda2fe87ef654e434 Mon Sep 17 00:00:00 2001
From: Tim Peters <tim.peters@gmail.com>
Date: Fri, 6 Dec 2002 23:38:02 +0000
Subject: [PATCH] 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.

---
 Objects/typeobject.c | 6 +++---
 1 file 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();
-- 
2.40.0