diff Modules/itertoolsmodule.c @ 30241:3fb3747ce304 2.3

For safety, replace a tuple entry before decreffing it.
author Raymond Hettinger <python@rcn.com>
date Sat, 30 Aug 2003 00:11:16 +0000
parents e83575bb29da
children 97f3d66558fb
line wrap: on
line diff
--- a/Modules/itertoolsmodule.c	Fri Aug 29 23:13:16 2003 +0000
+++ b/Modules/itertoolsmodule.c	Sat Aug 30 00:11:16 2003 +0000
@@ -1597,6 +1597,7 @@
 	PyObject *result = lz->result;
 	PyObject *it;
 	PyObject *item;
+	PyObject *olditem;
 
 	if (result->ob_refcnt == 1) {
 		Py_INCREF(result);
@@ -1608,8 +1609,9 @@
 				Py_DECREF(result);
 				return NULL;
 			}
-			Py_DECREF(PyTuple_GET_ITEM(result, i));
+			olditem = PyTuple_GET_ITEM(result, i);
 			PyTuple_SET_ITEM(result, i, item);
+			Py_DECREF(olditem);
 		}
 	} else {
 		result = PyTuple_New(tuplesize);