diff options
author | Jason Evans <jasone@canonware.com> | 2015-06-22 14:38:06 -0700 |
---|---|---|
committer | Jason Evans <jasone@canonware.com> | 2015-06-22 14:38:06 -0700 |
commit | 4f6f2b131e2a96c031974681d28f48095bfb6a76 (patch) | |
tree | 06c3531a0c3e4d4ee4125e0c9cd5890e2edcda61 /src | |
parent | 713b844bfffe7ce7454259da6ae24638794b1967 (diff) | |
download | jemalloc-4f6f2b131e2a96c031974681d28f48095bfb6a76.tar.gz |
Fix two valgrind integration regressions.
The regressions were never merged into the master branch.
Diffstat (limited to 'src')
-rw-r--r-- | src/base.c | 2 | ||||
-rw-r--r-- | src/chunk.c | 10 |
2 files changed, 9 insertions, 3 deletions
@@ -121,7 +121,7 @@ base_alloc(size_t size) base_resident += PAGE_CEILING((uintptr_t)ret + csize) - PAGE_CEILING((uintptr_t)ret); } - JEMALLOC_VALGRIND_MAKE_MEM_UNDEFINED(ret, csize); + JEMALLOC_VALGRIND_MAKE_MEM_DEFINED(ret, csize); label_return: malloc_mutex_unlock(&base_mtx); return (ret); diff --git a/src/chunk.c b/src/chunk.c index 7063410..1279965 100644 --- a/src/chunk.c +++ b/src/chunk.c @@ -277,15 +277,21 @@ void * chunk_alloc_cache(arena_t *arena, void *new_addr, size_t size, size_t alignment, bool *zero, bool dalloc_node) { + void *ret; assert(size != 0); assert((size & chunksize_mask) == 0); assert(alignment != 0); assert((alignment & chunksize_mask) == 0); - return (chunk_recycle(arena, &arena->chunks_szad_cache, + ret = chunk_recycle(arena, &arena->chunks_szad_cache, &arena->chunks_ad_cache, true, new_addr, size, alignment, zero, - dalloc_node)); + dalloc_node); + if (ret == NULL) + return (NULL); + if (config_valgrind) + JEMALLOC_VALGRIND_MAKE_MEM_UNDEFINED(ret, size); + return (ret); } static arena_t * |