From 9519d3f7cebb632db8019f79176110d4f197c7d6 Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Sat, 22 Feb 2025 20:25:01 +0800 Subject: [PATCH] use an arena for the args --- src/main.zig | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/main.zig b/src/main.zig index 41ab5746..3157d7e6 100644 --- a/src/main.zig +++ b/src/main.zig @@ -43,15 +43,6 @@ pub const std_options = .{ }; pub fn main() !void { - var mem: [4096]u8 = undefined; - var fba = std.heap.FixedBufferAllocator.init(&mem); - const args = try parseArgs(fba.allocator()); - - if (args.mode == .help) { - // don't need to create a gpa in this case - return args.printUsageAndExit(args.mode.help); - } - // allocator // - in Debug mode we use the General Purpose Allocator to detect memory leaks // - in Release mode we use the c allocator @@ -62,8 +53,12 @@ pub fn main() !void { _ = gpa.detectLeaks(); }; + var args_arena = std.heap.ArenaAllocator.init(alloc); + defer args_arena.deinit(); + const args = try parseArgs(args_arena.allocator()); + switch (args.mode) { - .help => unreachable, // handled above + .help => args.printUsageAndExit(args.mode.help), .serve => |opts| { const address = std.net.Address.parseIp4(opts.host, opts.port) catch |err| { log.err("address (host:port) {any}\n", .{err});