about summary refs log tree commit diff
path: root/malloc/malloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'malloc/malloc.c')
-rw-r--r--malloc/malloc.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 8cc9e454dc..6b89083880 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -2969,9 +2969,6 @@ static Void_t* sYSMALLOc(nb, av) INTERNAL_SIZE_T nb; mstate av;
     */
 
     else {
-      /* Count foreign sbrk as system_mem.  */
-      if (old_size)
-	av->system_mem += brk - old_end;
       front_misalign = 0;
       end_misalign = 0;
       correction = 0;
@@ -2980,6 +2977,10 @@ static Void_t* sYSMALLOc(nb, av) INTERNAL_SIZE_T nb; mstate av;
       /* handle contiguous cases */
       if (contiguous(av)) {
 
+	/* Count foreign sbrk as system_mem.  */
+	if (old_size)
+	  av->system_mem += brk - old_end;
+
         /* Guarantee alignment of first new chunk made from this space */
 
         front_misalign = (INTERNAL_SIZE_T)chunk2mem(brk) & MALLOC_ALIGN_MASK;
@@ -5164,11 +5165,11 @@ int mALLOPt(int param_number, int value)
 int mALLOPt(param_number, value) int param_number; int value;
 #endif
 {
-  if(__malloc_initialized < 0)
-    ptmalloc_init ();
   mstate av = &main_arena;
   int res = 1;
 
+  if(__malloc_initialized < 0)
+    ptmalloc_init ();
   (void)mutex_lock(&av->mutex);
   /* Ensure initialization/consolidation */
   malloc_consolidate(av);