]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Widen ASDL sequences to Py_ssize_t lengths to better match PEP 353.
authorMartin v. Löwis <martin@v.loewis.de>
Tue, 15 May 2012 12:45:03 +0000 (14:45 +0200)
committerMartin v. Löwis <martin@v.loewis.de>
Tue, 15 May 2012 12:45:03 +0000 (14:45 +0200)
Include/asdl.h
Python/Python-ast.c
Python/asdl.c

index 42bbbf8b02f2223b90b550c44d3a6c37bef81f93..6bf618f3e9665670dc3d27568d7714d8b75b329e 100644 (file)
@@ -15,17 +15,17 @@ typedef PyObject * object;
 /* XXX A sequence should be typed so that its use can be typechecked. */
 
 typedef struct {
-    int size;
+    Py_ssize_t size;
     void *elements[1];
 } asdl_seq;
 
 typedef struct {
-    int size;
+    Py_ssize_t size;
     int elements[1];
 } asdl_int_seq;
 
-asdl_seq *asdl_seq_new(int size, PyArena *arena);
-asdl_int_seq *asdl_int_seq_new(int size, PyArena *arena);
+asdl_seq *asdl_seq_new(Py_ssize_t size, PyArena *arena);
+asdl_int_seq *asdl_int_seq_new(Py_ssize_t size, PyArena *arena);
 
 #define asdl_seq_GET(S, I) (S)->elements[(I)]
 #define asdl_seq_LEN(S) ((S) == NULL ? 0 : (S)->size)
index d9e13e28b0d97162729bd9d4b6ec0469491ca1c2..4ca269f9f542a9eecd5901f2519778e6e7cbd1c3 100644 (file)
@@ -636,7 +636,7 @@ static int add_attributes(PyTypeObject* type, char**attrs, int num_fields)
 
 static PyObject* ast2obj_list(asdl_seq *seq, PyObject* (*func)(void*))
 {
-    int i, n = asdl_seq_LEN(seq);
+    Py_ssize_t i, n = asdl_seq_LEN(seq);
     PyObject *result = PyList_New(n);
     PyObject *value;
     if (!result)
@@ -2857,7 +2857,7 @@ ast2obj_expr(void* _o)
                         goto failed;
                 Py_DECREF(value);
                 {
-                        int i, n = asdl_seq_LEN(o->v.Compare.ops);
+                        Py_ssize_t i, n = asdl_seq_LEN(o->v.Compare.ops);
                         value = PyList_New(n);
                         if (!value) goto failed;
                         for(i = 0; i < n; i++)
index c30d7d20599831fc9bf2ffd916c8ac60879a0dd6..e7e3280678d92591b8f36b97b09e75c792e9b8b6 100644 (file)
@@ -2,7 +2,7 @@
 #include "asdl.h"
 
 asdl_seq *
-asdl_seq_new(int size, PyArena *arena)
+asdl_seq_new(Py_ssize_t size, PyArena *arena)
 {
     asdl_seq *seq = NULL;
     size_t n = (size ? (sizeof(void *) * (size - 1)) : 0);
@@ -33,7 +33,7 @@ asdl_seq_new(int size, PyArena *arena)
 }
 
 asdl_int_seq *
-asdl_int_seq_new(int size, PyArena *arena)
+asdl_int_seq_new(Py_ssize_t size, PyArena *arena)
 {
     asdl_int_seq *seq = NULL;
     size_t n = (size ? (sizeof(void *) * (size - 1)) : 0);