diff Objects/classobject.c @ 19336:ebfb74ce7e56 legacy-trunk

Fix core dump in repr() of instancemethod whose class==NULL.
author Guido van Rossum <guido@python.org>
date Fri, 17 Aug 2001 13:59:27 +0000
parents 60264d1e100e
children 0e70df98424e
line wrap: on
line diff
--- a/Objects/classobject.c	Fri Aug 17 13:58:31 2001 +0000
+++ b/Objects/classobject.c	Fri Aug 17 13:59:27 2001 +0000
@@ -2058,15 +2058,19 @@
 	}
 	else
 		sfuncname = PyString_AS_STRING(funcname);
-	klassname = PyObject_GetAttrString(klass, "__name__");
-	if (klassname == NULL)
-		PyErr_Clear();
-	else if (!PyString_Check(klassname)) {
-		Py_DECREF(klassname);
+	if (klass == NULL)
 		klassname = NULL;
+	else {
+		klassname = PyObject_GetAttrString(klass, "__name__");
+		if (klassname == NULL)
+			PyErr_Clear();
+		else if (!PyString_Check(klassname)) {
+			Py_DECREF(klassname);
+			klassname = NULL;
+		}
+		else
+			sklassname = PyString_AS_STRING(klassname);
 	}
-	else
-		sklassname = PyString_AS_STRING(klassname);
 	if (self == NULL)
 		sprintf(buffer, "<unbound method %.100s.%.100s>",
 			sklassname, sfuncname);