diff options
Diffstat (limited to 'Objects/classobject.c')
-rw-r--r-- | Objects/classobject.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/Objects/classobject.c b/Objects/classobject.c index 095b0cad2b..a193ada6d4 100644 --- a/Objects/classobject.c +++ b/Objects/classobject.c @@ -225,13 +225,9 @@ method_richcompare(PyObject *self, PyObject *other, int op) b = (PyMethodObject *)other; eq = PyObject_RichCompareBool(a->im_func, b->im_func, Py_EQ); if (eq == 1) { - if (a->im_self == NULL || b->im_self == NULL) - eq = a->im_self == b->im_self; - else - eq = PyObject_RichCompareBool(a->im_self, b->im_self, - Py_EQ); + eq = (a->im_self == b->im_self); } - if (eq < 0) + else if (eq < 0) return NULL; if (op == Py_EQ) res = eq ? Py_True : Py_False; @@ -274,11 +270,9 @@ method_hash(PyMethodObject *a) { Py_hash_t x, y; if (a->im_self == NULL) - x = PyObject_Hash(Py_None); + x = _Py_HashPointer(Py_None); else - x = PyObject_Hash(a->im_self); - if (x == -1) - return -1; + x = _Py_HashPointer(a->im_self); y = PyObject_Hash(a->im_func); if (y == -1) return -1; |