From: Ayo Reis Date: Wed, 18 Feb 2026 17:00:47 +0000 (+0000) Subject: Fix invalid free X-Git-Url: https://git.ayoreis.com/zlox.git/commitdiff_plain/5e3ec8fe273e7a23ea827d4d9e7ac598491875d3?ds=sidebyside;hp=6d286699938880d7a1482be65e5e4771788c6b6f Fix invalid free --- diff --git a/src/ast_printer.zig b/src/ast_printer.zig index 21c8702..978484b 100644 --- a/src/ast_printer.zig +++ b/src/ast_printer.zig @@ -8,9 +8,9 @@ pub fn print(allocator: Allocator, expr: *const Expr) Allocator.Error![]const u8 .binary => |binary| try parenthesize(allocator, binary.operator.lexeme, &.{ binary.left, binary.right }), .grouping => |grouping| try parenthesize(allocator, "group", &.{grouping.expression}), .literal => |literal| switch (literal.value) { - .nil => "nil", - .boolean => |boolean| if (boolean) "true" else "false", - .string => |string| string, + .nil => try allocator.dupe(u8, "nil"), + .boolean => |boolean| try std.fmt.allocPrint(allocator, "{}", .{boolean}), + .string => |string| try allocator.dupe(u8, string), .number => |number| try std.fmt.allocPrint(allocator, "{}", .{number}), }, .unary => |unary| try parenthesize(allocator, unary.operator.lexeme, &.{unary.right}),