On 9/27/21 05:20, Giovanni Mascellani wrote:
Also, the node is doubly freed in the error path (because make_list already frees the node when it fails). Maybe the outer hlsl_free_instr was meant to free the variable instead (though the variable must also be freed when hlsl_new_var_load fails).
Evidently I wrote make_list() to free the node as a convenience, but then never made use of that, since all of the current users do the same thing. I'm not even sure which behaviour to keep (on the one hand, convenience, on the other, I don't like functions which free their input parameters when failing...)