[PATCH vkd3d v2 06/10] vkd3d-shader/hlsl: Properly free parse_variable_def memory in declare_vars().

Zebediah Figura (she/her) zfigura at codeweavers.com
Tue Jan 11 12:44:24 CST 2022


On 1/11/22 12:23, Giovanni Mascellani wrote:
> Hi,
> 
> On 11/01/22 18:34, Zebediah Figura (she/her) wrote:
>> I'm afraid I don't agree in this case. The principle is fine in 
>> general; the problem here is that struct parse_variable_def isn't 
>> semantically an object; it's a collection of information that's 
>> grouped into a struct only because yacc requires it. The fact that the 
>> code ends up using it in a relatively piecewise fashion is a good 
>> indication of this.
> 
> It is of course a completely legitimate point of view, but I think it's 
> more prone to mistakes: for instance, the many missing calls to free() 
> that Francisco is fixing.

I'm not convinced that treating it as an object would really help here. 
Leaks are just hard.

> Also, if we insist in keeping this point of view, then we should remove 
> free_parse_variable_def(), because that's precisely one of the gadgets 
> that indicates that the structure is meant to be an encapsulated object.

I don't see anything wrong with having helpers like that.



More information about the wine-devel mailing list