cpython: 012b5c9c062d (original) (raw)
Mercurial > cpython
changeset 91277:012b5c9c062d 2.7
Issue #21810: Backport mmap-based arena allocation failure check. [#21810]
Charles-François Natali cf.natali@gmail.com | |
---|---|
date | Thu, 19 Jun 2014 22:42:51 +0100 |
parents | d4f9efd4be7d |
children | 7b4dcc39c6db |
files | Objects/obmalloc.c |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-)[+] [-] Objects/obmalloc.c 13 |
line wrap: on
line diff
--- a/Objects/obmalloc.c +++ b/Objects/obmalloc.c @@ -540,6 +540,8 @@ new_arena(void) { struct arena_object* arenaobj; uint excess; /* number of bytes above pool alignment */
#ifdef PYMALLOC_DEBUG if (Py_GETENV("PYTHONMALLOCSTATS")) @@ -593,12 +595,14 @@ new_arena(void) unused_arena_objects = arenaobj->nextarena; assert(arenaobj->address == 0); #ifdef ARENAS_USE_MMAP
- arenaobj->address = (uptr)mmap(NULL, ARENA_SIZE, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);[](#l1.17)
- address = mmap(NULL, ARENA_SIZE, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);[](#l1.19)
- err = (address == MAP_FAILED);
@@ -606,6 +610,7 @@ new_arena(void) unused_arena_objects = arenaobj; return NULL; }