[PATCH 0/1] MR763: vkd3d-shader/hlsl: Properly release string buffer on write_atan_or_atan2().
Fix to a sneaky memory leak. * `hlsl_get_string_buffer()`/`vkd3d_string_buffer_get()` should go with `hlsl_release_string_buffer()`/`vkd3d_string_buffer_release()`. * `vkd3d_string_buffer_init()` should go with `vkd3d_string_buffer_free()`, which only frees the internal `char *` of the string buffer. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/763
From: Francisco Casas <fcasas(a)codeweavers.com> vkd3d_string_buffer_cleanup() doesn't do the same as hlsl_release_string_buffer(). The former only frees the char array inside the string buffer and not the string buffer itself. --- libs/vkd3d-shader/hlsl.y | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y index e02e0c540..7c2f83028 100644 --- a/libs/vkd3d-shader/hlsl.y +++ b/libs/vkd3d-shader/hlsl.y @@ -2870,20 +2870,20 @@ static bool write_atan_or_atan2(struct hlsl_ctx *ctx, type->name, type->name, type->name); if (ret < 0) { - vkd3d_string_buffer_cleanup(buf); + hlsl_release_string_buffer(ctx, buf); return false; } ret = vkd3d_string_buffer_printf(buf, body_template, type->name); if (ret < 0) { - vkd3d_string_buffer_cleanup(buf); + hlsl_release_string_buffer(ctx, buf); return false; } func = hlsl_compile_internal_function(ctx, atan2_mode ? atan2_name : atan_name, buf->buffer); - vkd3d_string_buffer_cleanup(buf); + hlsl_release_string_buffer(ctx, buf); if (!func) return false; -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/763
This merge request was approved by Giovanni Mascellani. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/763
This merge request was approved by Zebediah Figura. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/763
This merge request was approved by Henri Verbeet. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/763
participants (5)
-
Francisco Casas -
Francisco Casas (@fcasas) -
Giovanni Mascellani (@giomasce) -
Henri Verbeet (@hverbeet) -
Zebediah Figura (@zfigura)