From 41c3244875dbe2a549ff1f41f8fdca66992a6994 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 18 Jan 2001 23:33:37 +0000 Subject: [PATCH] Rich comparisons fallout: PyObject_Hash() should check for both tp_compare and tp_richcompare NULL before deciding to do a quickie based on the object address. (Tim Peters discovered this.) --- Objects/object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Objects/object.c b/Objects/object.c index 323ed54b51b..44344f9b2c2 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -914,7 +914,7 @@ PyObject_Hash(PyObject *v) PyTypeObject *tp = v->ob_type; if (tp->tp_hash != NULL) return (*tp->tp_hash)(v); - if (tp->tp_compare == NULL) { + if (tp->tp_compare == NULL && tp->tp_richcompare == NULL) { return _Py_HashPointer(v); /* Use address as hash value */ } /* If there's a cmp but no hash defined, the object can't be hashed */