mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	Widen ASDL sequences to Py_ssize_t lengths to better match PEP 353.
This commit is contained in:
		
							parent
							
								
									33cac8578b
								
							
						
					
					
						commit
						cc10a37ef0
					
				
					 3 changed files with 8 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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++)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue