ralloc: remove memset from ralloc_size
authorMarek Olšák <marek.olsak@amd.com>
Thu, 6 Oct 2016 22:51:41 +0000 (00:51 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 31 Oct 2016 10:53:38 +0000 (11:53 +0100)
only do it in rzalloc_size as it was supposed to be

Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
src/util/ralloc.c

index 7023d798f50fe6b73c722cecd7109b2390803c0b..b202753e15fe3477e1752fa01cdf2f848c9faa7e 100644 (file)
@@ -109,18 +109,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;
@@ -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)