[Python-checkins] CVS: python/dist/src/Objects abstract.c,2.61,2.62

Tim Peters tim_one@users.sourceforge.net
Wed, 02 May 2001 00:12:41 -0700


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

Modified Files:
	abstract.c 
Log Message:
Plug a memory leak in list(), when appending to the result list.


Index: abstract.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/abstract.c,v
retrieving revision 2.61
retrieving revision 2.62
diff -C2 -r2.61 -r2.62
*** abstract.c	2001/05/01 20:45:31	2.61
--- abstract.c	2001/05/02 07:12:39	2.62
***************
*** 1292,1300 ****
  		}
  		if (i < n)
! 			PyList_SET_ITEM(result, i, item);
! 		else if (PyList_Append(result, item) < 0) {
! 			Py_DECREF(result);
! 			result = NULL;
! 			break;
  		}
  	}
--- 1292,1304 ----
  		}
  		if (i < n)
! 			PyList_SET_ITEM(result, i, item); /* steals ref */
! 		else {
! 			int status = PyList_Append(result, item);
! 			Py_DECREF(item);  /* append creates a new ref */
! 			if (status < 0) {
! 				Py_DECREF(result);
! 				result = NULL;
! 				break;
! 			}
  		}
  	}