summaryrefslogtreecommitdiffstats
path: root/src/util
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-10-07 00:51:41 +0200
committerMarek Olšák <[email protected]>2016-10-31 11:53:38 +0100
commitacc23b04cfd64e0f1dcdb699aaf653376ca6df15 (patch)
tree034177d40347d107b5a902482f39a96119a2c4b4 /src/util
parent52d2b28f7f107fbaff023533a15058055fa73bf0 (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')
-rw-r--r--src/util/ralloc.c26
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)