diff options
Diffstat (limited to 'malloc/malloc.c')
-rw-r--r-- | malloc/malloc.c | 11 |
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); |