aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2015-06-22 14:38:06 -0700
committerJason Evans <jasone@canonware.com>2015-06-22 14:38:06 -0700
commit4f6f2b131e2a96c031974681d28f48095bfb6a76 (patch)
tree06c3531a0c3e4d4ee4125e0c9cd5890e2edcda61 /src
parent713b844bfffe7ce7454259da6ae24638794b1967 (diff)
downloadjemalloc-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.c2
-rw-r--r--src/chunk.c10
2 files changed, 9 insertions, 3 deletions
diff --git a/src/base.c b/src/base.c
index 3ab46ec..df3ddb6 100644
--- a/src/base.c
+++ b/src/base.c
@@ -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 *