Fix core dump in repr() of instancemethod whose class==NULL.

This commit is contained in:
Guido van Rossum 2001-08-17 13:59:27 +00:00
parent 84a79a8d25
commit 4066769b91
1 changed files with 11 additions and 7 deletions

View 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);