From 09471e564a93e927ccc9cd6e8b286d1b27ef9801 Mon Sep 17 00:00:00 2001 From: Luna Date: Mon, 2 Dec 2019 20:13:19 -0300 Subject: [PATCH] allow args to be deinited on error, fix argAt --- src/lang.zig | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lang.zig b/src/lang.zig index 02dbf3b..8063329 100644 --- a/src/lang.zig +++ b/src/lang.zig @@ -45,13 +45,14 @@ pub const Command = struct { } pub fn argAt(self: Command, idx: usize) ![]const u8 { - const args = self.args.toSliceConst(); + std.debug.warn("{} {}", idx, self.args.len); - if (idx > (args.len - 1)) { + if (idx > (self.args.len - 1)) { std.debug.warn("Expected argument at index {}\n", idx); return ParseError.ArgRequired; } + const args = self.args.toSliceConst(); return args[idx]; } @@ -361,6 +362,8 @@ pub const Lang = struct { } var args = ArgList.init(self.allocator); + errdefer args.deinit(); + while (tok_it.next()) |arg| { try args.append(arg); }