diff options
author | Martin v. L?wis <martin@v.loewis.de> | 2012-05-15 14:45:03 +0200 |
---|---|---|
committer | Martin v. L?wis <martin@v.loewis.de> | 2012-05-15 14:45:03 +0200 |
commit | 6c56fb87a67308d5d9530ae892d8d5f230549c64 (patch) | |
tree | a8a3b7a7931de6849e97914658aaa9fbdcd5cc81 | |
parent | 91bfead43af07b97da7b36ac577bbde34eb5cd01 (diff) | |
download | cpython-6c56fb87a67308d5d9530ae892d8d5f230549c64.tar.gz |
Widen ASDL sequences to Py_ssize_t lengths to better match PEP 353.
-rw-r--r-- | Include/asdl.h | 8 | ||||
-rw-r--r-- | Python/Python-ast.c | 4 | ||||
-rw-r--r-- | Python/asdl.c | 4 |
3 files changed, 8 insertions, 8 deletions
diff --git a/Include/asdl.h b/Include/asdl.h index 42bbbf8b02..6bf618f3e9 100644 --- a/Include/asdl.h +++ b/Include/asdl.h @@ -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) diff --git a/Python/Python-ast.c b/Python/Python-ast.c index d9e13e28b0..4ca269f9f5 100644 --- a/Python/Python-ast.c +++ b/Python/Python-ast.c @@ -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++) diff --git a/Python/asdl.c b/Python/asdl.c index c30d7d2059..e7e3280678 100644 --- a/Python/asdl.c +++ b/Python/asdl.c @@ -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); |