From 1addc28463490f4c9271c93f76acf9dfa55f693c Mon Sep 17 00:00:00 2001 From: afonya2 Date: Sun, 8 Jun 2025 22:53:40 +0200 Subject: [PATCH] fixing, temporarily disabled the register gc --- src/compiler.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/compiler.rs b/src/compiler.rs index 82e2242..9b8d30b 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -119,13 +119,14 @@ fn allocate_register(registers: &Vec) -> AllocateResult { }; } -fn garbage_collect_registers(registers: &mut Vec) { - for register in registers { +fn garbage_collect_registers(_registers: &mut Vec) { + return; + /*for register in registers { if register.used && register.variable == 0 { register.used = false; register.last_used = 0; } - } + }*/ } fn get_variable_by_name(variables: &Vec, name: &str, position: usize) -> Option { @@ -232,6 +233,7 @@ fn do_ast_op(ast_op: ASTPart, op_count: &mut usize, ops: &mut Vec, va ops.push(Operation { opcode: 8, arg1: Some(ret_reg.register), arg2: None, arg3: None, pos: call.pos as u32 }); } ops.push(Operation { opcode: 27, arg1: Some(func), arg2: Some(ret_reg.register as i64), arg3: None, pos: call.pos as u32 }); + set_register(registers, RegisterState { id: ret_reg.register, used: true, variable: 0, last_used: *op_count }); return ret_reg.register; }, ASTPart::If(if_part) => {