python/dist/src/Modules itertoolsmodule.c, 1.18, 1.18.6.1

Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv796/Modules Modified Files: Tag: release23-maint 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.18 retrieving revision 1.18.6.1 diff -C2 -d -r1.18 -r1.18.6.1 *** itertoolsmodule.c 14 Jul 2003 07:07:12 -0000 1.18 --- itertoolsmodule.c 29 Aug 2003 23:13:16 -0000 1.18.6.1 *************** *** 1600,1613 **** 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); --- 1600,1615 ---- 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