diff options
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); |