blob: ccd8714d02679bdb6f649f71e85cab2a7f29ca27 [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
Neal Norwitzadb69fc2005-12-17 20:54:49 +000011 seq = (asdl_seq *)malloc(n);
Jeremy Hylton3e0055f2005-10-20 19:59:25 +000012 if (!seq) {
Neal Norwitzdaae6162005-11-14 00:47:57 +000013 PyErr_NoMemory();
Jeremy Hylton3e0055f2005-10-20 19:59:25 +000014 return NULL;
15 }
Neal Norwitzadb69fc2005-12-17 20:54:49 +000016 PyArena_AddMallocPointer(arena, (void *)seq);
Jeremy Hylton3e0055f2005-10-20 19:59:25 +000017 memset(seq, 0, n);
18 seq->size = size;
19 return seq;
20}
21
22void
23asdl_seq_free(asdl_seq *seq)
24{
Jeremy Hylton3e0055f2005-10-20 19:59:25 +000025}