diff options
author | Jason Evans <je@fb.com> | 2011-11-14 17:15:59 -0800 |
---|---|---|
committer | Jason Evans <je@fb.com> | 2011-11-14 17:15:59 -0800 |
commit | fc1bb70e5f0d9a58b39efa39cc549b5af5104760 (patch) | |
tree | 0a77b93409638147a90c2ec49fd818789a722f42 /src/chunk.c | |
parent | d1c526d53b613474975ccd0124e3150f54a991d1 (diff) | |
parent | 196c7b7e6d567dc5a4e9a70001e52c8b970ff318 (diff) | |
download | jemalloc-2.2.5.tar.gz |
Merge branch '2_2_5_bp'2.2.5
Diffstat (limited to 'src/chunk.c')
-rw-r--r-- | src/chunk.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/chunk.c b/src/chunk.c index 301519e8..d190c6f4 100644 --- a/src/chunk.c +++ b/src/chunk.c @@ -70,7 +70,7 @@ RETURN: #ifdef JEMALLOC_IVSALLOC if (base == false && ret != NULL) { if (rtree_set(chunks_rtree, (uintptr_t)ret, ret)) { - chunk_dealloc(ret, size); + chunk_dealloc(ret, size, true); return (NULL); } } @@ -108,7 +108,7 @@ RETURN: } void -chunk_dealloc(void *chunk, size_t size) +chunk_dealloc(void *chunk, size_t size, bool unmap) { assert(chunk != NULL); @@ -125,15 +125,17 @@ chunk_dealloc(void *chunk, size_t size) malloc_mutex_unlock(&chunks_mtx); #endif + if (unmap) { #ifdef JEMALLOC_SWAP - if (swap_enabled && chunk_dealloc_swap(chunk, size) == false) - return; + if (swap_enabled && chunk_dealloc_swap(chunk, size) == false) + return; #endif #ifdef JEMALLOC_DSS - if (chunk_dealloc_dss(chunk, size) == false) - return; + if (chunk_dealloc_dss(chunk, size) == false) + return; #endif - chunk_dealloc_mmap(chunk, size); + chunk_dealloc_mmap(chunk, size); + } } bool |