util/ralloc: Remove double zero'ing of rzalloc buffers
Juha-Pekka found this back in May 2015: <1430915727-28677-1-git-send-email-juhapekka.heikkila@gmail.com> 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 <56AF1C57.2030904@gmail.com>, 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 <jordan.l.justen@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -109,6 +109,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;
|
||||
@@ -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)
|
||||
|
Reference in New Issue
Block a user