| ... | @@ -132,7 +132,6 @@ pub fn main(init: process.Init.Minimal) !void { | ... | @@ -132,7 +132,6 @@ pub fn main(init: process.Init.Minimal) !void { |
| 132 | defer threaded.deinit(); | 132 | defer threaded.deinit(); |
| 133 | const io = threaded.io(); | 133 | const io = threaded.io(); |
| 134 | | 134 | |
| 135 | // ...but we'll back our arena by `std.heap.page_allocator` for efficiency. | | |
| 136 | var arena_instance: std.heap.ArenaAllocator = .init(std.heap.page_allocator); | 135 | var arena_instance: std.heap.ArenaAllocator = .init(std.heap.page_allocator); |
| 137 | defer arena_instance.deinit(); | 136 | defer arena_instance.deinit(); |
| 138 | defer if (debugMakerLeaks()) log.debug("used {Bi} of arena", .{arena_instance.queryCapacity()}); | 137 | defer if (debugMakerLeaks()) log.debug("used {Bi} of arena", .{arena_instance.queryCapacity()}); |
| ... | @@ -2742,20 +2741,20 @@ pub fn printErrorMessages( | ... | @@ -2742,20 +2741,20 @@ pub fn printErrorMessages( |
| 2742 | try writer.writeByte('\n'); | 2741 | try writer.writeByte('\n'); |
| 2743 | } | 2742 | } |
| 2744 | | 2743 | |
| 2745 | fn nextArg(args: []const []const u8, idx: *usize) ?[]const u8 { | 2744 | fn nextArg(args: []const []const u8, i: *usize) ?[]const u8 { |
| 2746 | if (idx.* >= args.len) return null; | 2745 | if (i.* >= args.len) return null; |
| 2747 | defer idx.* += 1; | 2746 | defer i.* += 1; |
| 2748 | return args[idx.*]; | 2747 | return args[i.*]; |
| 2749 | } | 2748 | } |
| 2750 | | 2749 | |
| 2751 | fn nextArgOrFatal(args: []const []const u8, idx: *usize) []const u8 { | 2750 | fn nextArgOrFatal(args: []const []const u8, i: *usize) []const u8 { |
| 2752 | return nextArg(args, idx) orelse fatalWithHint("expected argument after {q}", .{args[idx.* - 1]}); | 2751 | return nextArg(args, i) orelse fatalWithHint("expected another argument after {q}", .{args[i.* - 1]}); |
| 2753 | } | 2752 | } |
| 2754 | | 2753 | |
| 2755 | fn prefixedArgOrFatal(args: []const []const u8, index_ptr: *usize, prefix: []const u8) []const u8 { | 2754 | fn prefixedArgOrFatal(args: []const []const u8, i: *usize, prefix: []const u8) []const u8 { |
| 2756 | const arg = args[index_ptr.*]; | 2755 | const arg = nextArgOrFatal(args, i); |
| 2757 | if (mem.cutPrefix(u8, arg, prefix)) |rest| return rest; | 2756 | if (mem.cutPrefix(u8, arg, prefix)) |rest| return rest; |
| 2758 | fatal("expected {q} to begin with {q}", .{ arg, prefix }); | 2757 | fatal("expected {q} to instead begin with {q}", .{ arg, prefix }); |
| 2759 | } | 2758 | } |
| 2760 | | 2759 | |
| 2761 | fn argsRest(args: []const []const u8, idx: usize) ?[]const []const u8 { | 2760 | fn argsRest(args: []const []const u8, idx: usize) ?[]const []const u8 { |