diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-07-22 02:16:52 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-07-22 02:16:52 +0000 |
commit | f74e61f05626503cc5e469b940bdb149c98d7ab8 (patch) | |
tree | 9ad75ab5388fcecef7d2718aca473d4c97900ae7 | |
parent | 58bad8033d028e42b9585ffa9e2eaac29901368a (diff) | |
download | glibc-f74e61f05626503cc5e469b940bdb149c98d7ab8.tar.gz glibc-f74e61f05626503cc5e469b940bdb149c98d7ab8.tar.xz glibc-f74e61f05626503cc5e469b940bdb149c98d7ab8.zip |
Update.
2000-07-21 Wolfram Gloger <wg@malloc.de> * malloc/malloc.c (chunk_alloc): Try mmap_chunk() for smaller allocations only if a non-main arena cannot be extended. * sysdeps/powerpc/bp-asm.h (DISCARD_BOUNDS): Rename from UNCHECK_BOUNDS.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | malloc/malloc.c | 9 |
2 files changed, 13 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index ddb72d8710..342c1fe6a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2000-07-21 Wolfram Gloger <wg@malloc.de> + + * malloc/malloc.c (chunk_alloc): Try mmap_chunk() for smaller + allocations only if a non-main arena cannot be extended. + 2000-07-21 Ulrich Drepper <drepper@redhat.com> * elf/dl-load.c (_dl_map_object): Take loader==NULL into account @@ -21,7 +26,8 @@ 2000-07-21 Greg McGary <greg@mcgary.org> - * sysdeps/powerpc/bp-asm.h (DISCARD_BOUNDS): Rename from UNCHECK_BOUNDS. + * sysdeps/powerpc/bp-asm.h (DISCARD_BOUNDS): Rename from + UNCHECK_BOUNDS. * sysdeps/powerpc/bits/setjmp.h (JB_SIZE): New constant. * sysdeps/powerpc/elf/libc-start.c (__libc_start_main): Wrap bounds around argv & envp and each of their string members. diff --git a/malloc/malloc.c b/malloc/malloc.c index 68d8752de6..ce8de8015b 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -2938,9 +2938,12 @@ chunk_alloc(ar_ptr, nb) arena *ar_ptr; INTERNAL_SIZE_T nb; if ((remainder_size = chunksize(top(ar_ptr)) - nb) < (long)MINSIZE) { #if HAVE_MMAP - /* A last attempt: when we are out of address space in the arena, - try mmap anyway, as long as it is allowed at all. */ - if (n_mmaps_max > 0 && (victim = mmap_chunk(nb)) != 0) + /* A last attempt: when we are out of address space in a + non-main arena, try mmap anyway, as long as it is allowed at + all. */ + if (ar_ptr != &main_arena && + n_mmaps_max > 0 && + (victim = mmap_chunk(nb)) != 0) return victim; #endif return 0; /* propagate failure */ |