blob: 72329b9d2f26e7161b1c833854006b4f8df6e2e5 [file] [log] [blame]
Jeremy Hylton3e0055f2005-10-20 19:59:25 +00001#include "Python.h"
2#include "asdl.h"
3
4asdl_seq *
Neal Norwitzadb69fc2005-12-17 20:54:49 +00005asdl_seq_new(int size, PyArena *arena)
Jeremy Hylton3e0055f2005-10-20 19:59:25 +00006{
7 asdl_seq *seq = NULL;
8 size_t n = sizeof(asdl_seq) +
9 (size ? (sizeof(void *) * (size - 1)) : 0);
10
Martin v. Löwis0cc56e52006-04-13 12:29:43 +000011 seq = (asdl_seq *)PyArena_Malloc(arena, n);
12 if (!seq) {
13 PyErr_NoMemory();
14 return NULL;
15 }
16 memset(seq, 0, n);
17 seq->size = size;
18 return seq;
19}
20
21asdl_int_seq *
22asdl_int_seq_new(int size, PyArena *arena)
23{
Martin v. Löwisf33dea22006-04-13 13:08:58 +000024 asdl_int_seq *seq = NULL;
Martin v. Löwis0cc56e52006-04-13 12:29:43 +000025 size_t n = sizeof(asdl_seq) +
26 (size ? (sizeof(int) * (size - 1)) : 0);
27
Martin v. Löwisf33dea22006-04-13 13:08:58 +000028 seq = (asdl_int_seq *)PyArena_Malloc(arena, n);
Jeremy Hylton3e0055f2005-10-20 19:59:25 +000029 if (!seq) {
Neal Norwitzdaae6162005-11-14 00:47:57 +000030 PyErr_NoMemory();
Jeremy Hylton3e0055f2005-10-20 19:59:25 +000031 return NULL;
32 }
33 memset(seq, 0, n);
34 seq->size = size;
35 return seq;
36}