]> granicus.if.org Git - python/commitdiff
deal with old-style classes in issubclass and isinstance
authorBenjamin Peterson <benjamin@python.org>
Sat, 16 May 2009 22:30:48 +0000 (22:30 +0000)
committerBenjamin Peterson <benjamin@python.org>
Sat, 16 May 2009 22:30:48 +0000 (22:30 +0000)
Objects/abstract.c

index 5fb7bfc01e17af36aed4a6ea61a761d6f30608d9..2266fa16279399665e13277d7ec390f7a419ea5b 100644 (file)
@@ -2927,7 +2927,7 @@ PyObject_IsInstance(PyObject *inst, PyObject *cls)
                return r;
        }
 
-       if (PyInstance_Check(cls)) {
+       if (PyClass_Check(cls) || PyInstance_Check(cls)) {
                checker = PyObject_GetAttrString(cls, "__instancecheck__");
                if (checker == NULL) {
                        if (PyErr_ExceptionMatches(PyExc_AttributeError))
@@ -3013,7 +3013,7 @@ PyObject_IsSubclass(PyObject *derived, PyObject *cls)
                Py_LeaveRecursiveCall();
                return r;
        }
-       if (PyInstance_Check(cls)) {
+       if (PyClass_Check(cls) || PyInstance_Check(cls)) {
                PyErr_Fetch(&t, &v, &tb);
                checker = PyObject_GetAttr(cls, name);
                if (checker == NULL &&