[Python-checkins] python/dist/src/Objects typeobject.c,2.225,2.226

gvanrossum@users.sourceforge.net gvanrossum@users.sourceforge.net
Tue, 15 Apr 2003 15:09:49 -0700


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

Modified Files:
	typeobject.c 
Log Message:
Fix three (!) object leaks in the code for assignment to __bases__.


Index: typeobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/typeobject.c,v
retrieving revision 2.225
retrieving revision 2.226
diff -C2 -d -r2.225 -r2.226
*** typeobject.c	15 Apr 2003 20:04:28 -0000	2.225
--- typeobject.c	15 Apr 2003 22:09:45 -0000	2.226
***************
*** 165,172 ****
--- 165,174 ----
  			PyObject* tuple;
  			tuple = Py_BuildValue("OO", subclass, old_mro);
+ 			Py_DECREF(old_mro);
  			if (!tuple)
  				return -1;
  			if (PyList_Append(temp, tuple) < 0)
  				return -1;
+ 			Py_DECREF(tuple);
  		}
  		if (mro_subclasses(subclass, temp) < 0)
***************
*** 257,261 ****
  			PyTypeObject* cls;
  			PyObject* mro;
! 			PyArg_ParseTuple(PyList_GetItem(temp, i),
  					 "OO", &cls, &mro);
  			Py_DECREF(cls->tp_mro);
--- 259,263 ----
  			PyTypeObject* cls;
  			PyObject* mro;
! 			PyArg_ParseTuple(PyList_GET_ITEM(temp, i),
  					 "OO", &cls, &mro);
  			Py_DECREF(cls->tp_mro);