summaryrefslogtreecommitdiff
path: root/src/compiler/code-generator.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/code-generator.c')
-rw-r--r--src/compiler/code-generator.c14
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);