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 4cfbd49..6129442 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -3941,19 +3941,19 @@
 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();