diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2012-05-15 12:45:03 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2012-05-15 12:45:03 (GMT) |
commit | cc10a37ef0e05906c0f1c93bea646f3521b84a76 (patch) | |
tree | 1fc5f7b5853db5490f382ff90c6469b02d537a66 | |
parent | 33cac8578bede2e9d6688ff46e849df7c2897a26 (diff) | |
download | cpython-cc10a37ef0e05906c0f1c93bea646f3521b84a76.zip cpython-cc10a37ef0e05906c0f1c93bea646f3521b84a76.tar.gz cpython-cc10a37ef0e05906c0f1c93bea646f3521b84a76.tar.bz2 |
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 42bbbf8..6bf618f 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 d9e13e2..4ca269f 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 c30d7d20..e7e3280 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); |