]> granicus.if.org Git - python/commitdiff
Issue #9566: More long/Py_ssize_t fixes in tuple and list iterators (it_index)
authorVictor Stinner <victor.stinner@gmail.com>
Mon, 24 Jun 2013 21:59:24 +0000 (23:59 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Mon, 24 Jun 2013 21:59:24 +0000 (23:59 +0200)
Objects/listobject.c
Objects/tupleobject.c

index 4cc34b5a3c33c8d2c21808d5e9fc8110cf884ff0..0c82cc40ecaced9a8ad7a6594279c52b77810a3c 100644 (file)
@@ -2660,7 +2660,7 @@ PyTypeObject PyList_Type = {
 
 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 @@ listiter_reduce(listiterobject *it)
 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 @@ listiter_reduce_general(void *_it, int forward)
     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;
index de43ee4bdf69a054dd43a95c83a25c13defdd3a6..52896b7919703c2f2c7ebcd7939d122834342661 100644 (file)
@@ -988,7 +988,7 @@ static PyObject *
 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 @@ tupleiter_reduce(tupleiterobject *it)
 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) {