Fix core dump in repr() of instancemethod whose class==NULL.
authorGuido van Rossum <guido@python.org>
Fri, 17 Aug 2001 13:59:27 +0000 (13:59 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 17 Aug 2001 13:59:27 +0000 (13:59 +0000)
Objects/classobject.c

index 9652dfe81ca674068c4b24ac1f0a4a855c39508b..0f39d4ba6801664474a5e8523a66221322dff027 100644 (file)
@@ -2058,15 +2058,19 @@ instancemethod_repr(PyMethodObject *a)
        }
        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);