changeset: 84329:3a393fc86b29 user: Victor Stinner date: Mon Jun 24 23:59:24 2013 +0200 files: Objects/listobject.c Objects/tupleobject.c description: Issue #9566: More long/Py_ssize_t fixes in tuple and list iterators (it_index) diff -r c1a400501db6 -r 3a393fc86b29 Objects/listobject.c --- a/Objects/listobject.c Mon Jun 24 23:47:41 2013 +0200 +++ b/Objects/listobject.c Mon Jun 24 23:59:24 2013 +0200 @@ -2660,7 +2660,7 @@ typedef struct { PyObject_HEAD - long it_index; + Py_ssize_t it_index; PyListObject *it_seq; /* Set to NULL when iterator is exhausted */ } listiterobject; @@ -2797,7 +2797,7 @@ static PyObject * listiter_setstate(listiterobject *it, PyObject *state) { - long index = PyLong_AsLong(state); + Py_ssize_t index = PyLong_AsSsize_t(state); if (index == -1 && PyErr_Occurred()) return NULL; if (it->it_seq != NULL) { @@ -2958,7 +2958,7 @@ if (forward) { listiterobject *it = (listiterobject *)_it; if (it->it_seq) - return Py_BuildValue("N(O)l", _PyObject_GetBuiltin("iter"), + return Py_BuildValue("N(O)n", _PyObject_GetBuiltin("iter"), it->it_seq, it->it_index); } else { listreviterobject *it = (listreviterobject *)_it; diff -r c1a400501db6 -r 3a393fc86b29 Objects/tupleobject.c --- a/Objects/tupleobject.c Mon Jun 24 23:47:41 2013 +0200 +++ b/Objects/tupleobject.c Mon Jun 24 23:59:24 2013 +0200 @@ -988,7 +988,7 @@ tupleiter_reduce(tupleiterobject *it) { if (it->it_seq) - return Py_BuildValue("N(O)l", _PyObject_GetBuiltin("iter"), + return Py_BuildValue("N(O)n", _PyObject_GetBuiltin("iter"), it->it_seq, it->it_index); else return Py_BuildValue("N(())", _PyObject_GetBuiltin("iter")); @@ -997,7 +997,7 @@ static PyObject * tupleiter_setstate(tupleiterobject *it, PyObject *state) { - Py_ssize_t index = PyLong_AsLong(state); + Py_ssize_t index = PyLong_AsSsize_t(state); if (index == -1 && PyErr_Occurred()) return NULL; if (it->it_seq != NULL) {