[Python-checkins] CVS: python/dist/src/Objects classobject.c,2.139,2.140
Guido van Rossum
gvanrossum@users.sourceforge.net
Fri, 17 Aug 2001 06:59:30 -0700
Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv31188
Modified Files:
classobject.c
Log Message:
Fix core dump in repr() of instancemethod whose class==NULL.
Index: classobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/classobject.c,v
retrieving revision 2.139
retrieving revision 2.140
diff -C2 -d -r2.139 -r2.140
*** classobject.c 2001/08/17 13:43:27 2.139
--- classobject.c 2001/08/17 13:59:27 2.140
***************
*** 2059,2071 ****
else
sfuncname = PyString_AS_STRING(funcname);
! 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);
if (self == NULL)
sprintf(buffer, "<unbound method %.100s.%.100s>",
--- 2059,2075 ----
else
sfuncname = PyString_AS_STRING(funcname);
! 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);
}
if (self == NULL)
sprintf(buffer, "<unbound method %.100s.%.100s>",