From 9af4ec2b284bacde2f2d0d33c82b221d1c6d8c2b Mon Sep 17 00:00:00 2001 From: Francisco Casas Date: Tue, 7 Oct 2025 22:24:19 -0300 Subject: [PATCH] vkd3d-shader/ir: Don't preallocate instructions in vsir_cfg_structure_list_emit_jump(). --- libs/vkd3d-shader/ir.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index 150bd20ce..95f046d94 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -7023,12 +7023,10 @@ static enum vkd3d_result vsir_cfg_structure_list_emit_jump(struct vsir_cfg *cfg, vkd3d_unreachable(); } - if (!shader_instruction_array_reserve(&target->instructions, target->instructions.count + 2)) - return VKD3D_ERROR_OUT_OF_MEMORY; - if (jump->needs_launcher) { - ins = shader_instruction_array_append(&target->instructions); + if (!(ins = shader_instruction_array_append(&target->instructions))) + return VKD3D_ERROR_OUT_OF_MEMORY; if (!vsir_instruction_init_with_params(cfg->program, ins, &no_loc, VSIR_OP_MOV, 1, 1)) { vkd3d_shader_instruction_make_nop(ins); @@ -7039,7 +7037,8 @@ static enum vkd3d_result vsir_cfg_structure_list_emit_jump(struct vsir_cfg *cfg, src_param_init_const_uint(&ins->src[0], jump_target); } - ins = shader_instruction_array_append(&target->instructions); + if (!(ins = shader_instruction_array_append(&target->instructions))) + return VKD3D_ERROR_OUT_OF_MEMORY; if (!vsir_instruction_init_with_params(cfg->program, ins, &no_loc, opcode, 0, !!jump->condition)) { vkd3d_shader_instruction_make_nop(ins);