diff options
author | Camil Staps | 2016-08-25 18:05:46 +0200 |
---|---|---|
committer | Camil Staps | 2016-08-25 18:05:46 +0200 |
commit | b70388ee72a7ab74eb45c987e62d731f63843a58 (patch) | |
tree | 26627d94bc3a749b433dcca2ac67573959e198b6 /compiler/syntax.c | |
parent | Move memory allocation to separate module (diff) |
Fixed overwriting errors
Diffstat (limited to 'compiler/syntax.c')
-rw-r--r-- | compiler/syntax.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/syntax.c b/compiler/syntax.c index b4ff9dc..3d5e18d 100644 --- a/compiler/syntax.c +++ b/compiler/syntax.c @@ -22,6 +22,7 @@ unsigned empty_args_list(arg_list* list) { } void cpy_expression(expression* dst, expression* src) { + free_expression(dst); dst->kind = src->kind; switch (dst->kind) { case EXPR_INT: @@ -136,6 +137,8 @@ void free_expression(expression* expr) { my_free(expr->var2); break; } + + expr->var1 = expr->var2 = NULL; } void free_arg_list(arg_list* list) { |