python/dist/src/Modules itertoolsmodule.c, 1.19, 1.20

Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv32335/Modules Modified Files: itertoolsmodule.c Log Message: SF bug #793826: using itertools.izip to mutate tuples Avoid Armin Rigo's dastardly exercise in re-entrancy. Index: itertoolsmodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/itertoolsmodule.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** itertoolsmodule.c 8 Aug 2003 05:10:41 -0000 1.19 --- itertoolsmodule.c 29 Aug 2003 23:09:58 -0000 1.20 *************** *** 1596,1609 **** return NULL; if (result->ob_refcnt == 1) { for (i=0 ; i < tuplesize ; i++) { it = PyTuple_GET_ITEM(lz->ittuple, i); assert(PyIter_Check(it)); item = (*it->ob_type->tp_iternext)(it); ! if (item == NULL) return NULL; Py_DECREF(PyTuple_GET_ITEM(result, i)); PyTuple_SET_ITEM(result, i, item); } - Py_INCREF(result); } else { result = PyTuple_New(tuplesize); --- 1596,1611 ---- return NULL; if (result->ob_refcnt == 1) { + Py_INCREF(result); for (i=0 ; i < tuplesize ; i++) { it = PyTuple_GET_ITEM(lz->ittuple, i); assert(PyIter_Check(it)); item = (*it->ob_type->tp_iternext)(it); ! if (item == NULL) { ! Py_DECREF(result); return NULL; + } Py_DECREF(PyTuple_GET_ITEM(result, i)); PyTuple_SET_ITEM(result, i, item); } } else { result = PyTuple_New(tuplesize);
participants (1)
-
rhettingerīŧ users.sourceforge.net