Merge from ast-arena. This reduces the code in Python/ast.c by ~300 lines,

simplifies a lot of error handling code, and fixes many memory leaks.
This commit is contained in:
Neal Norwitz 2005-12-17 20:54:49 +00:00
parent 23a6958910
commit adb69fcdff
16 changed files with 704 additions and 1242 deletions

View file

@ -2,17 +2,18 @@
#include "asdl.h"
asdl_seq *
asdl_seq_new(int size)
asdl_seq_new(int size, PyArena *arena)
{
asdl_seq *seq = NULL;
size_t n = sizeof(asdl_seq) +
(size ? (sizeof(void *) * (size - 1)) : 0);
seq = (asdl_seq *)PyObject_Malloc(n);
seq = (asdl_seq *)malloc(n);
if (!seq) {
PyErr_NoMemory();
return NULL;
}
PyArena_AddMallocPointer(arena, (void *)seq);
memset(seq, 0, n);
seq->size = size;
return seq;
@ -21,6 +22,4 @@ asdl_seq_new(int size)
void
asdl_seq_free(asdl_seq *seq)
{
PyObject_Free(seq);
}