diff options
Diffstat (limited to 'interpreter')
| -rw-r--r-- | interpreter/code.c | 8 | 
1 files changed, 6 insertions, 2 deletions
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) {  | 
