Merged revisions 72690 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r72690 | benjamin.peterson | 2009-05-16 16:44:25 -0500 (Sat, 16 May 2009) | 1 line

  properly lookup __instancecheck__ and __subclasscheck__
........
diff --git a/Objects/abstract.c b/Objects/abstract.c
index cc125f5..ae536a7 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -2574,14 +2574,8 @@
 		Py_LeaveRecursiveCall();
 		return r;
 	}
-	if (name == NULL) {
-		name = PyUnicode_InternFromString("__instancecheck__");
-		if (name == NULL)
-			return -1;
-	}
-	checker = PyObject_GetAttr(cls, name);
-	if (checker == NULL && PyErr_Occurred())
-		PyErr_Clear();
+
+	checker = _PyObject_LookupSpecial(cls, "__instancecheck__", &name);
 	if (checker != NULL) {
 		PyObject *res;
 		int ok = -1;
@@ -2644,14 +2638,8 @@
 		Py_LeaveRecursiveCall();
 		return r;
 	}
-	if (name == NULL) {
-		name = PyUnicode_InternFromString("__subclasscheck__");
-		if (name == NULL)
-			return -1;
-	}
-	PyErr_Fetch(&t, &v, &tb);
-	checker = PyObject_GetAttr(cls, name);
-	PyErr_Restore(t, v, tb);
+
+	checker = _PyObject_LookupSpecial(cls, "__subclasscheck__", &name);
 	if (checker != NULL) {
 		PyObject *res;
 		int ok = -1;