diff options
Diffstat (limited to 'Python/asdl.c')
-rw-r--r-- | Python/asdl.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/Python/asdl.c b/Python/asdl.c index 225df6e761..72329b9d2f 100644 --- a/Python/asdl.c +++ b/Python/asdl.c @@ -8,7 +8,24 @@ asdl_seq_new(int size, PyArena *arena) size_t n = sizeof(asdl_seq) + (size ? (sizeof(void *) * (size - 1)) : 0); - seq = (asdl_seq *)PyArena_Malloc(arena, n); + seq = (asdl_seq *)PyArena_Malloc(arena, n); + if (!seq) { + PyErr_NoMemory(); + return NULL; + } + memset(seq, 0, n); + seq->size = size; + return seq; +} + +asdl_int_seq * +asdl_int_seq_new(int size, PyArena *arena) +{ + asdl_int_seq *seq = NULL; + size_t n = sizeof(asdl_seq) + + (size ? (sizeof(int) * (size - 1)) : 0); + + seq = (asdl_int_seq *)PyArena_Malloc(arena, n); if (!seq) { PyErr_NoMemory(); return NULL; |