vkd3d-shader/ir: Use vsir_program_append() in vsir_program_ensure_ret().

I think this is slightly nicer. It also happens to avoid a
-Warray-bounds warning on some versions of gcc that suggests the "ins"
pointer returned by vsir_program_iterator_next() may be NULL.
This commit is contained in:
Henri Verbeet
2025-07-30 22:03:13 +02:00
parent b9fe19701c
commit bd3d0f3495
Notes: Henri Verbeet 2025-07-31 15:06:57 +02:00
Approved-by: Francisco Casas (@fcasas)
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Elizabeth Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1665

View File

@@ -1752,14 +1752,11 @@ static enum vkd3d_result vsir_program_ensure_ret(struct vsir_program *program,
struct vkd3d_shader_instruction *ins; struct vkd3d_shader_instruction *ins;
ins = vsir_program_iterator_tail(&it); ins = vsir_program_iterator_tail(&it);
if (ins && ins->opcode == VSIR_OP_RET) if (ins && ins->opcode == VSIR_OP_RET)
return VKD3D_OK; return VKD3D_OK;
if (!vsir_program_iterator_insert_after(&it, 1)) if (!(ins = vsir_program_append(program)))
return VKD3D_ERROR_OUT_OF_MEMORY; return VKD3D_ERROR_OUT_OF_MEMORY;
ins = vsir_program_iterator_next(&it);
vsir_instruction_init(ins, &no_loc, VSIR_OP_RET); vsir_instruction_init(ins, &no_loc, VSIR_OP_RET);
return VKD3D_OK; return VKD3D_OK;