From 6406e5af893e2a5acdcb346e47d89454d0300b8a Mon Sep 17 00:00:00 2001 From: Komari Spaghetti Date: Thu, 24 Jun 2021 17:20:00 +0200 Subject: parse: Copy in arena after using it in parseEx fixes #43 --- clap.zig | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'clap.zig') diff --git a/clap.zig b/clap.zig index ee713a7..20cf25d 100644 --- a/clap.zig +++ b/clap.zig @@ -293,19 +293,17 @@ pub fn parse( opt: ParseOptions, ) !Args(Id, params) { var iter = try args.OsIterator.init(opt.allocator); - var res = Args(Id, params){ - .arena = iter.arena, - .exe_arg = iter.exe_arg, - .clap = undefined, - }; - - // Let's reuse the arena from the `OSIterator` since we already have - // it. - res.clap = try parseEx(Id, params, &iter, .{ - .allocator = &res.arena.allocator, + const clap = try parseEx(Id, params, &iter, .{ + // Let's reuse the arena from the `OSIterator` since we already have it. + .allocator = &iter.arena.allocator, .diagnostic = opt.diagnostic, }); - return res; + + return Args(Id, params){ + .exe_arg = iter.exe_arg, + .arena = iter.arena, + .clap = clap, + }; } /// Parses the command line arguments passed into the program based on an -- cgit v1.2.3