summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2012-05-15 12:45:03 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2012-05-15 12:45:03 (GMT)
commitcc10a37ef0e05906c0f1c93bea646f3521b84a76 (patch)
tree1fc5f7b5853db5490f382ff90c6469b02d537a66
parent33cac8578bede2e9d6688ff46e849df7c2897a26 (diff)
downloadcpython-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.h8
-rw-r--r--Python/Python-ast.c4
-rw-r--r--Python/asdl.c4
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);