Module: wine Branch: master Commit: c38df594f5c35ef28986cfd1340ecfd3eb5969b0 URL: https://gitlab.winehq.org/wine/wine/-/commit/c38df594f5c35ef28986cfd1340ecfd...
Author: Zebediah Figura zfigura@codeweavers.com Date: Mon Mar 18 18:10:41 2024 -0500
wined3d: Avoid leaking string buffers in shader_glsl_load_bindless_samplers().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56445
---
dlls/wined3d/glsl_shader.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 9ba9b2e1d4c..42cdb585c50 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -10760,17 +10760,19 @@ static void shader_glsl_update_graphics_program(struct shader_glsl_priv *priv, static void shader_glsl_load_bindless_samplers(struct shader_glsl_priv *priv, struct wined3d_context_gl *context_gl, const struct wined3d_state *state, enum wined3d_shader_type shader_type) { - struct wined3d_string_buffer *sampler_name = string_buffer_get(&priv->string_buffers); const struct wined3d_device_gl *device_gl = wined3d_device_gl(context_gl->c.device); const struct glsl_context_data *ctx_data = context_gl->c.shader_backend_data; const struct wined3d_shader *shader = state->shader[shader_type]; const struct wined3d_gl_info *gl_info = context_gl->gl_info; const char *prefix = shader_glsl_get_prefix(shader_type); + struct wined3d_string_buffer *sampler_name;
/* Note that we don't use bindless samplers for FFP shaders. */ if (!shader) return;
+ sampler_name = string_buffer_get(&priv->string_buffers); + for (unsigned int i = 0; i < shader->reg_maps.sampler_map.count; ++i) { const struct wined3d_shader_sampler_map_entry *entry = &shader->reg_maps.sampler_map.entries[i];