diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-01-25 23:03:52 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-01-25 23:03:52 +0330 |
commit | e2fc93a2985b1085048a07753e7c93b23abf06ed (patch) | |
tree | 3068c1894e6c13e69901d1bef59c66b0af2014af /src/compiler/code-generator.c | |
parent | b945815a225c3efdef5df03af52f921f98f9ed90 (diff) |
fix memory leaks
Diffstat (limited to 'src/compiler/code-generator.c')
-rw-r--r-- | src/compiler/code-generator.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/compiler/code-generator.c b/src/compiler/code-generator.c index c07bab5..d9fc05d 100644 --- a/src/compiler/code-generator.c +++ b/src/compiler/code-generator.c @@ -9,7 +9,19 @@ void codeGeneratorDelete(CodeGeneratorCodes *code) { for (size_t i = 0; i < code->codes_size; ++i) { - continue; + CodeGeneratorCode current = code->codes[i]; + switch (current.instruction) { + case CODE_GENERATOR_INSTRUCTION_PRINT: + case CODE_GENERATOR_INSTRUCTION_RET: + continue; + case CODE_GENERATOR_INSTRUCTION_CALL: { + CodeGeneratorCall *metadata = current.metadata; + free(metadata); + } + continue; + } + printLog("Bad instruction %d", current.instruction); + exit(1); } free(code->codes); free(code); |