[PATCH v4 2/5] winegstreamer: Move the conditional cleanup to the create error path.
Rémi Bernon
rbernon at codeweavers.com
Tue Feb 22 13:37:05 CST 2022
On 2/22/22 19:35, Rémi Bernon wrote:
> On 2/22/22 19:05, Zebediah Figura (she/her) wrote:
>> On 2/22/22 12:03, Rémi Bernon wrote:
>>> On 2/22/22 18:43, Zebediah Figura wrote:
>>>> +out_free_sink_caps:
>>>> + gst_caps_unref(sink_caps);
>>>> +out_free_src_pad:
>>>> + gst_object_unref(transform->my_src);
>>>> +out_free_src_caps:
>>>> + gst_caps_unref(src_caps);
>>>> +out_free_transform:
>>>> + free(transform);
>>>> + GST_ERROR("Failed to create winegstreamer transform.");
>>>> return status;
>>>> }
>>>
>>> I hesitated with an approach like this. I haven't seen goto dipatch like
>>> this elsewhere so I thought it wasn't the preferred style.
>>
>> I haven't seen it used elsewhere in Wine, but it was adopted in a couple
>> of places in vkd3d, and I personally like it.
>
>
> Tbh I'm not sure I do, I find it much harder to reason with, especially
> when there's many different error paths or stage like here, though I'm
> not the maintainer here.
>
Experiencing it a bit more after rebasing my local patches I think it
also makes re-odering of code much more difficult as you need to be very
careful to update the gotos correctly as well as with potential
reordering of the cleanup labels and steps.
--
Rémi Bernon <rbernon at codeweavers.com>
More information about the wine-devel
mailing list