[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>",