diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2016-11-12 14:29:48 +0200 |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2016-11-12 14:29:48 +0200 |
commit | e7ed9c7bd2204dd48d67eb7b14813c0338a85a0c (patch) | |
tree | fdcf7d7cba9df4da905bfc99dd42ddc7cfe15138 /Python/pyarena.c | |
parent | 4a994ab2dc58b8fd66549ea28eb489e8009d19d7 (diff) | |
parent | 5f7236d4e16f4f4eee4da97621a6f8a225dfba4e (diff) | |
download | cpython-e7ed9c7bd2204dd48d67eb7b14813c0338a85a0c.tar.gz |
Issue #28648: Fixed crash in Py_DecodeLocale() in debug build on Mac OS X
when decode astral characters.
Diffstat (limited to 'Python/pyarena.c')
-rw-r--r-- | Python/pyarena.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/Python/pyarena.c b/Python/pyarena.c index 02a31d8ff0..103603fcdf 100644 --- a/Python/pyarena.c +++ b/Python/pyarena.c @@ -77,7 +77,7 @@ block_new(size_t size) { /* Allocate header and block as one unit. ab_mem points just past header. */ - block *b = (block *)malloc(sizeof(block) + size); + block *b = (block *)PyMem_Malloc(sizeof(block) + size); if (!b) return NULL; b->ab_size = size; @@ -92,7 +92,7 @@ static void block_free(block *b) { while (b) { block *next = b->ab_next; - free(b); + PyMem_Free(b); b = next; } } @@ -127,20 +127,20 @@ block_alloc(block *b, size_t size) PyArena * PyArena_New() { - PyArena* arena = (PyArena *)malloc(sizeof(PyArena)); + PyArena* arena = (PyArena *)PyMem_Malloc(sizeof(PyArena)); if (!arena) return (PyArena*)PyErr_NoMemory(); arena->a_head = block_new(DEFAULT_BLOCK_SIZE); arena->a_cur = arena->a_head; if (!arena->a_head) { - free((void *)arena); + PyMem_Free((void *)arena); return (PyArena*)PyErr_NoMemory(); } arena->a_objects = PyList_New(0); if (!arena->a_objects) { block_free(arena->a_head); - free((void *)arena); + PyMem_Free((void *)arena); return (PyArena*)PyErr_NoMemory(); } #if defined(Py_DEBUG) @@ -173,7 +173,7 @@ PyArena_Free(PyArena *arena) */ Py_DECREF(arena->a_objects); - free(arena); + PyMem_Free(arena); } void * |