Mercurial > cpython-lru_cache-weakref
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);
