(sYSMALLOc): Move foreign sbrk accounting into contiguous case.
authordrepper <drepper>
Mon, 8 Sep 2003 16:32:37 +0000 (16:32 +0000)
committerdrepper <drepper>
Mon, 8 Sep 2003 16:32:37 +0000 (16:32 +0000)
(mALLOPt): Avoid requirement of C99.

malloc/malloc.c

index 8cc9e45..6b89083 100644 (file)
@@ -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);