diff options
author | Jordan Justen <[email protected]> | 2016-05-10 14:22:13 -0700 |
---|---|---|
committer | Jordan Justen <[email protected]> | 2016-05-10 22:54:46 -0700 |
commit | 2c1c060b031a7c179653ee83f28f7325c47ebd04 (patch) | |
tree | f2d4a852104ca544a7f4fba09bfb1e48cdf13046 | |
parent | e3d43dc5eae5271e2c87bab702aa7409d3dd0b23 (diff) |
util/ralloc: Remove double zero'ing of rzalloc buffers
Juha-Pekka found this back in May 2015:
<[email protected]>
From the discussion, obviously it would be preferable to make
ralloc_size no longer return zeroed memory, but Juha-Pekka found that
it would break Mesa.
In <[email protected]>, Juha-Pekka mentioned that patches
exist to fix i965 when ralloc_size is fixed to not zero memory, but
the patches have not made their way to mesa-dev yet.
For now, let's stop doing the double zeroing of rzalloc buffers.
v2:
* Move ralloc_size code to rzalloc_size, and add a comment as
suggested by Ken.
Signed-off-by: Jordan Justen <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r-- | src/util/ralloc.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/util/ralloc.c b/src/util/ralloc.c index 6d4032bd4f6..9526011b836 100644 --- a/src/util/ralloc.c +++ b/src/util/ralloc.c @@ -110,6 +110,18 @@ 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 = calloc(1, size + sizeof(ralloc_header)); ralloc_header *info; ralloc_header *parent; @@ -128,15 +140,6 @@ ralloc_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 != NULL)) - memset(ptr, 0, size); - return ptr; -} - /* helper function - assumes ptr != NULL */ static void * resize(void *ptr, size_t size) |