about summary refs log tree commit diff
path: root/malloc/malloc.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-07-22 02:16:52 +0000
committerUlrich Drepper <drepper@redhat.com>2000-07-22 02:16:52 +0000
commitf74e61f05626503cc5e469b940bdb149c98d7ab8 (patch)
tree9ad75ab5388fcecef7d2718aca473d4c97900ae7 /malloc/malloc.c
parent58bad8033d028e42b9585ffa9e2eaac29901368a (diff)
downloadglibc-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.
Diffstat (limited to 'malloc/malloc.c')
-rw-r--r--malloc/malloc.c9
1 files changed, 6 insertions, 3 deletions
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 */