Arena chunk decommit cleanups and fixes.

Decommit arena chunk header during chunk deallocation if the rest of the
chunk is decommitted.
This commit is contained in:
Jason Evans
2015-08-09 16:47:27 -07:00
parent 4be0c3ca42
commit de249c8679
5 changed files with 55 additions and 29 deletions

View File

@@ -552,7 +552,7 @@ label_return:
void
chunk_dalloc_cache(arena_t *arena, chunk_hooks_t *chunk_hooks, void *chunk,
size_t size)
size_t size, bool committed)
{
assert(chunk != NULL);
@@ -561,7 +561,7 @@ chunk_dalloc_cache(arena_t *arena, chunk_hooks_t *chunk_hooks, void *chunk,
assert((size & chunksize_mask) == 0);
chunk_record(arena, chunk_hooks, &arena->chunks_szad_cached,
&arena->chunks_ad_cached, true, chunk, size, false, true);
&arena->chunks_ad_cached, true, chunk, size, false, committed);
arena_maybe_purge(arena);
}