for (i = 0; i != self->globals_count; ++i) {
ir_value_delete(self->globals[i]);
}
- MEM_VECTOR_CLEAR(self, fields);
+ MEM_VECTOR_CLEAR(self, globals);
for (i = 0; i != self->fields_count; ++i) {
ir_value_delete(self->fields[i]);
}
if (!in)
return false;
- if (!ir_instr_op(in, 0, v, false) ||
- !ir_block_instr_add(self, in) )
- {
+ if (v && !ir_instr_op(in, 0, v, false))
+ return false;
+
+ if (!ir_block_instr_add(self, in))
return false;
- }
return true;
}