diff options
author | Marek Olšák <[email protected]> | 2016-10-07 00:51:41 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2016-10-31 11:53:38 +0100 |
commit | acc23b04cfd64e0f1dcdb699aaf653376ca6df15 (patch) | |
tree | 034177d40347d107b5a902482f39a96119a2c4b4 /src/util/ralloc.c | |
parent | 52d2b28f7f107fbaff023533a15058055fa73bf0 (diff) |
ralloc: remove memset from ralloc_size
only do it in rzalloc_size as it was supposed to be
Reviewed-by: Edward O'Callaghan <[email protected]>
Tested-by: Edmondo Tommasina <[email protected]>
Diffstat (limited to 'src/util/ralloc.c')
-rw-r--r-- | src/util/ralloc.c | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/util/ralloc.c b/src/util/ralloc.c index 7023d798f50..b202753e15f 100644 --- a/src/util/ralloc.c +++ b/src/util/ralloc.c @@ -110,18 +110,6 @@ ralloc_context(const void *ctx) void * ralloc_size(const void *ctx, size_t size) { - /* ralloc_size was originally implemented using calloc, which meant some - * code accidentally relied on its zero filling behavior. - * - * TODO: Make ralloc_size not zero fill memory, and cleanup any code that - * should instead be using rzalloc. - */ - return rzalloc_size(ctx, size); -} - -void * -rzalloc_size(const void *ctx, size_t size) -{ void *block = malloc(size + sizeof(ralloc_header)); ralloc_header *info; ralloc_header *parent; @@ -140,9 +128,6 @@ rzalloc_size(const void *ctx, size_t size) info->next = NULL; info->destructor = NULL; - /* memset the allocation except for ralloc_header */ - memset(&info[1], 0, size); - parent = ctx != NULL ? get_header(ctx) : NULL; add_child(parent, info); @@ -154,6 +139,17 @@ rzalloc_size(const void *ctx, size_t size) return PTR_FROM_HEADER(info); } +void * +rzalloc_size(const void *ctx, size_t size) +{ + void *ptr = ralloc_size(ctx, size); + + if (likely(ptr)) + memset(ptr, 0, size); + + return ptr; +} + /* helper function - assumes ptr != NULL */ static void * resize(void *ptr, size_t size) |