[Python-checkins] commit of r41611 - python/branches/ast-arena/Python/pyarena.c
neal.norwitz
python-checkins at python.org
Mon Dec 5 08:35:01 CET 2005
Author: neal.norwitz
Date: Mon Dec 5 08:34:57 2005
New Revision: 41611
Modified:
python/branches/ast-arena/Python/pyarena.c
Log:
Remove PyAPI_FUNC(), they are only needed in the header file. check pointers are non-NULL from malloc()
Modified: python/branches/ast-arena/Python/pyarena.c
==============================================================================
--- python/branches/ast-arena/Python/pyarena.c (original)
+++ python/branches/ast-arena/Python/pyarena.c Mon Dec 5 08:34:57 2005
@@ -29,6 +29,9 @@
PyArenaList_New(void)
{
PyArenaList *alist = (PyArenaList *)malloc(sizeof(PyArenaList));
+ if (!alist)
+ return NULL;
+
alist->al_next = NULL;
alist->al_pointer = NULL;
return alist;
@@ -45,8 +48,11 @@
static void
PyArenaList_FreeObject(PyArenaList *alist)
{
- PyArenaList *prev;
+ if (!alist)
+ return;
+
while (alist) {
+ PyArenaList *prev;
Py_XDECREF((PyObject *)alist->al_pointer);
alist->al_pointer = NULL;
prev = alist;
@@ -58,8 +64,11 @@
static void
PyArenaList_FreeMalloc(PyArenaList *alist)
{
- PyArenaList *prev;
+ if (!alist)
+ return;
+
while (alist) {
+ PyArenaList *prev;
if (alist->al_pointer) {
free(alist->al_pointer);
}
@@ -71,10 +80,13 @@
}
-PyAPI_FUNC(PyArena *)
+PyArena *
PyArena_New()
{
PyArena* arena = (PyArena *)malloc(sizeof(PyArena));
+ if (!arena)
+ return NULL;
+
arena->a_object_head = PyArenaList_New();
arena->a_object_tail = arena->a_object_head;
arena->a_malloc_head = PyArenaList_New();
@@ -82,7 +94,7 @@
return arena;
}
-PyAPI_FUNC(void)
+void
PyArena_Free(PyArena *arena)
{
assert(arena);
@@ -91,7 +103,7 @@
free(arena);
}
-PyAPI_FUNC(void *)
+void *
PyArena_Malloc(PyArena *arena, size_t size)
{
/* A better implementation might actually use an arena. The current
@@ -105,7 +117,7 @@
return p;
}
-PyAPI_FUNC(int)
+int
PyArena_AddMallocPointer(PyArena *arena, void *pointer)
{
assert(pointer);
@@ -117,7 +129,7 @@
return 1;
}
-PyAPI_FUNC(int)
+int
PyArena_AddPyObject(PyArena *arena, PyObject *pointer)
{
assert(pointer);
More information about the Python-checkins
mailing list