diff options
| author | gingerBill <bill@gingerbill.org> | 2023-03-16 13:01:06 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2023-03-16 13:01:06 +0000 |
| commit | 49cf0125a936bdc5406ec7dcb0837470992f676c (patch) | |
| tree | 4cad2b14a8668fb76db89a4bb99e3abfd6614d4c /src/check_expr.cpp | |
| parent | 0602a16ad66a02e315a71de721885e351b723a2b (diff) | |
Fix minor memory leak
Diffstat (limited to 'src/check_expr.cpp')
| -rw-r--r-- | src/check_expr.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 5338c0b67..f27675301 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -6800,14 +6800,21 @@ gb_internal ExprKind check_call_expr(CheckerContext *c, Operand *operand, Ast *c operand->type = t_invalid; } } else { - gbString str = type_to_string(t); - defer (gb_string_free(str)); - operand->mode = Addressing_Invalid; isize arg_count = args.count; switch (arg_count) { - case 0: error(call, "Missing argument in conversion to '%s'", str); break; - default: error(call, "Too many arguments in conversion to '%s'", str); break; + case 0: + { + gbString str = type_to_string(t); + error(call, "Missing argument in conversion to '%s'", str); + gb_string_free(str); + } break; + default: + { + gbString str = type_to_string(t); + error(call, "Too many arguments in conversion to '%s'", str); + gb_string_free(str); + } break; case 1: { Ast *arg = args[0]; if (arg->kind == Ast_FieldValue) { |