From e78fa8b20f219597419b33c72d72da577e8f4ec8 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Sat, 24 Sep 2016 14:49:20 +0200 Subject: Fix memory leak with code --- interpreter/code.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'interpreter/code.c') diff --git a/interpreter/code.c b/interpreter/code.c index e3cafa7..595aac3 100644 --- a/interpreter/code.c +++ b/interpreter/code.c @@ -6,17 +6,21 @@ #include "mem.h" void fill_node_int(struct node** node, int i) { - free_node(*node, 1, 0); + unsigned int used_count = (*node)->used_count; + free_node(*node, used_count, 0); (*node)->kind = NODE_INT; (*node)->var1 = my_calloc(1, sizeof(int)); *((int*) (*node)->var1) = i; + use_node(*node, used_count - 1); } void fill_node_name(struct node** node, char* s) { - free_node(*node, 1, 0); + unsigned int used_count = (*node)->used_count; + free_node(*node, used_count, 0); (*node)->kind = NODE_NAME; (*node)->var1 = my_calloc(1, strlen(s) + 1); strcpy((*node)->var1, s); + use_node(*node, used_count - 1); } void code_time(struct node** result) { -- cgit v1.2.3