summaryrefslogtreecommitdiff
path: root/src/chunk.c
diff options
context:
space:
mode:
authorJason Evans <je@fb.com>2011-11-14 17:15:59 -0800
committerJason Evans <je@fb.com>2011-11-14 17:15:59 -0800
commitfc1bb70e5f0d9a58b39efa39cc549b5af5104760 (patch)
tree0a77b93409638147a90c2ec49fd818789a722f42 /src/chunk.c
parentd1c526d53b613474975ccd0124e3150f54a991d1 (diff)
parent196c7b7e6d567dc5a4e9a70001e52c8b970ff318 (diff)
downloadjemalloc-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.c16
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