[Mesa-dev] [PATCH 1/9] ralloc: Allow reparenting to a NULL context

Timothy Arceri tarceri at itsqueeze.com
Thu Aug 17 23:54:05 UTC 2017



On 18/08/17 09:05, Kenneth Graunke wrote:
> On Thursday, August 17, 2017 10:22:15 AM PDT Jason Ekstrand wrote:
>> ---
>>   src/util/ralloc.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/util/ralloc.c b/src/util/ralloc.c
>> index bf46439..4015c7e 100644
>> --- a/src/util/ralloc.c
>> +++ b/src/util/ralloc.c
>> @@ -285,7 +285,7 @@ ralloc_steal(const void *new_ctx, void *ptr)
>>         return;
>>   
>>      info = get_header(ptr);
>> -   parent = get_header(new_ctx);
>> +   parent = new_ctx ? get_header(new_ctx) : NULL;
>>   
>>      unlink_block(info);
>>   
>>
> 
> This patch is:
> Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
> 
> ralloc_adopt() doesn't properly handle NULL either, but frankly...
> reparenting an unknown set of children to the NULL context sounds like a
> recipe for leaks.  :)

I agree. I was wondering if we should create a special function for this:

ralloc_steal_to_NULL_ctx(void *ptr)

To void issues like:

ralloc_free(parent->child);
parent->child = NULL;

... lots of code in between ...

ralloc_steal(parent->child, ptr);

ralloc_free(parent);

Feel free to tell me I'm being paranoid.

>  So I'm not sure it's worth fixing.
> 
> 
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 


More information about the mesa-dev mailing list