Skip to content

Commit c6632e7

Browse files
committed
Issue #18203: Replace malloc() with PyMem_Malloc() to allocate arena objects
1 parent 80aa565 commit c6632e7

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

Python/pyarena.c

+6-6
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ block_new(size_t size)
7777
{
7878
/* Allocate header and block as one unit.
7979
ab_mem points just past header. */
80-
block *b = (block *)malloc(sizeof(block) + size);
80+
block *b = (block *)PyMem_Malloc(sizeof(block) + size);
8181
if (!b)
8282
return NULL;
8383
b->ab_size = size;
@@ -92,7 +92,7 @@ static void
9292
block_free(block *b) {
9393
while (b) {
9494
block *next = b->ab_next;
95-
free(b);
95+
PyMem_Free(b);
9696
b = next;
9797
}
9898
}
@@ -127,20 +127,20 @@ block_alloc(block *b, size_t size)
127127
PyArena *
128128
PyArena_New()
129129
{
130-
PyArena* arena = (PyArena *)malloc(sizeof(PyArena));
130+
PyArena* arena = (PyArena *)PyMem_Malloc(sizeof(PyArena));
131131
if (!arena)
132132
return (PyArena*)PyErr_NoMemory();
133133

134134
arena->a_head = block_new(DEFAULT_BLOCK_SIZE);
135135
arena->a_cur = arena->a_head;
136136
if (!arena->a_head) {
137-
free((void *)arena);
137+
PyMem_Free((void *)arena);
138138
return (PyArena*)PyErr_NoMemory();
139139
}
140140
arena->a_objects = PyList_New(0);
141141
if (!arena->a_objects) {
142142
block_free(arena->a_head);
143-
free((void *)arena);
143+
PyMem_Free((void *)arena);
144144
return (PyArena*)PyErr_NoMemory();
145145
}
146146
#if defined(Py_DEBUG)
@@ -173,7 +173,7 @@ PyArena_Free(PyArena *arena)
173173
*/
174174

175175
Py_DECREF(arena->a_objects);
176-
free(arena);
176+
PyMem_Free(arena);
177177
}
178178

179179
void *

0 commit comments

Comments
 (0)