Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/dxil.c:
+static bool shader_sm6_add_block_abbrev(struct vkd3d_shader_parser *parser) +{
- struct vkd3d_shader_sm6_parser *sm6 = vkd3d_shader_sm6_parser(parser);
- struct vkd3d_shader_sm6_block *block = sm6->current_block;
- struct vkd3d_shader_sm6_abbrev *abbrev;
- unsigned int count;
- if (block->id == BLOCKINFO_BLOCK)
- {
FIXME("Unhandled global abbreviation.\n");
return false;
- }
- count = shader_sm6_read_vbr(parser, 5);
- if (!vkd3d_array_reserve((void **)&block->abbrevs, &block->abbrev_capacity, block->abbrev_count + 1, sizeof(*block->abbrevs))
|| !(abbrev = vkd3d_malloc(sizeof(*abbrev) + count * sizeof(abbrev->operands[0]))))
`abbrev` is leaked if `shader_sm6_abbrev_init()` fails.