fix memory being freed too early

This commit is contained in:
William Bell
2025-08-10 04:39:50 +01:00
parent 49b1c1858a
commit c71375c7a4
12 changed files with 126 additions and 73 deletions

View File

@@ -11,6 +11,8 @@ size_t translate_parsed_call(Translated *translated, ParsedCall *call,
translate_parsed(translated, call->to_call, err);
size_t first = push_instruction_byte(translated, OP_INIT_CALL);
push_instruction_code(translated, call->args.size);
push_instruction_byte(translated, OP_NEW_SCOPE);
for (size_t i = 0; i < call->args.size; i++) {
translate_parsed(translated, darray_get(&call->args, i), err);
if (err->exists)
@@ -27,5 +29,6 @@ size_t translate_parsed_call(Translated *translated, ParsedCall *call,
push_instruction_code(translated, 1);
push_instruction_byte(translated, OP_CALL);
push_instruction_byte(translated, OP_POP_SCOPE);
return first;
}