[Python-checkins] python/dist/src/Objects object.c,2.196,2.197

tim_one@users.sourceforge.net tim_one@users.sourceforge.net
Wed, 05 Feb 2003 11:35:22 -0800


Update of /cvsroot/python/python/dist/src/Objects
In directory sc8-pr-cvs1:/tmp/cvs-serv3511/python/Objects

Modified Files:
	object.c 
Log Message:
SF bug 681122: Built-in function dir() causes refcount leak in baseclasses.

merge_class_dict():  This was missing a decref.

Bugfix candidate.


Index: object.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/object.c,v
retrieving revision 2.196
retrieving revision 2.197
diff -C2 -d -r2.196 -r2.197
*** object.c	20 Jan 2003 16:54:59 -0000	2.196
--- object.c	5 Feb 2003 19:35:19 -0000	2.197
***************
*** 1657,1660 ****
--- 1657,1661 ----
  		else {
  			for (i = 0; i < n; i++) {
+ 				int status;
  				PyObject *base = PySequence_GetItem(bases, i);
  				if (base == NULL) {
***************
*** 1662,1666 ****
  					return -1;
  				}
! 				if (merge_class_dict(dict, base) < 0) {
  					Py_DECREF(bases);
  					return -1;
--- 1663,1669 ----
  					return -1;
  				}
! 				status = merge_class_dict(dict, base);
! 				Py_DECREF(base);
! 				if (status < 0) {
  					Py_DECREF(bases);
  					return -1;