vkd3d-shader/ir: Free program parameters on failure in vsir_program_init() if needed.

This commit is contained in:
Henri Verbeet
2025-07-24 16:46:43 +02:00
parent f6a9def564
commit 67fd9bb76b
Notes: Henri Verbeet 2025-07-30 16:00:16 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Francisco Casas (@fcasas)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1659

View File

@@ -444,7 +444,14 @@ bool vsir_program_init(struct vsir_program *program, const struct vkd3d_shader_c
program->shader_version = *version;
program->cf_type = cf_type;
program->normalisation_level = normalisation_level;
return shader_instruction_array_init(&program->instructions, reserve);
if (!shader_instruction_array_init(&program->instructions, reserve))
{
if (program->free_parameters)
vkd3d_free((void *)program->parameters);
return false;
}
return true;
}
void vsir_program_cleanup(struct vsir_program *program)