From cc10a37ef0e05906c0f1c93bea646f3521b84a76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Tue, 15 May 2012 14:45:03 +0200 Subject: [PATCH] Widen ASDL sequences to Py_ssize_t lengths to better match PEP 353. --- Include/asdl.h | 8 ++++---- Python/Python-ast.c | 4 ++-- Python/asdl.c | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Include/asdl.h b/Include/asdl.h index 42bbbf8b02f..6bf618f3e96 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 d9e13e28b0d..4ca269f9f54 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 c30d7d20599..e7e3280678d 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);