From 643aca932aa30083246312eeddd2e0d6befa5861 Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Sun, 11 Oct 2015 21:48:10 -0700 Subject: One crucial assignment accidentally lost from 36834 when merging 36836. --- Src/mem.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Src') diff --git a/Src/mem.c b/Src/mem.c index 191428323..68bd76740 100644 --- a/Src/mem.c +++ b/Src/mem.c @@ -386,6 +386,8 @@ freeheap(void) VALGRIND_MEMPOOL_TRIM((char *)h, (char *)arena(h), h->used); #endif } else { + if (fheap == h) + fheap = NULL; if (h->next) { /* We want to cut this out of the arena list if we can */ if (h == heaps) @@ -404,8 +406,6 @@ freeheap(void) fheap = hl = h; break; } - if (fheap == h) - fheap = NULL; #ifdef USE_MMAP munmap((void *) h, h->size); #else @@ -590,6 +590,7 @@ zhalloc(size_t size) * so why start over at heaps just because fheap has too little? */ for (h = (fheap ? fheap : heaps); h; h = h->next) { + hp = h; if (ARENA_SIZEOF(h) >= (n = size + h->used)) { void *ret; -- cgit 1.4.1