From 6fbb5ad328d180f6d397d0d64feb599a6570914b Mon Sep 17 00:00:00 2001 From: Martin <66840021+Mcrtin@users.noreply.github.com> Date: Sat, 17 Oct 2026 20:51:01 +0200 Subject: [PATCH] std.json: audit usages of errdefer --- lib/std/json/Scanner.zig | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/std/json/Scanner.zig b/lib/std/json/Scanner.zig index 0d515db4f92bb1c39d3ed976e01a47621ad71066..08a69f9a83eb351cc95c67503dd86528b94039a5 100644 --- a/lib/std/json/Scanner.zig +++ b/lib/std/json/Scanner.zig @@ -136,9 +136,8 @@ pub fn nextAllocMax(self: *@This(), allocator: Allocator, when: AllocWhen, max_v switch (token_type) { .number, .string => { var value_list: std.ArrayList(u8) = .empty; - errdefer { - value_list.deinit(allocator); - } + defer value_list.deinit(allocator); + if (self.allocNextIntoArrayListMax(allocator, &value_list, when, max_value_len) catch |e| switch (e) { error.BufferUnderrun => unreachable, else => |err| return err, @@ -1608,9 +1607,8 @@ pub const Reader = struct { switch (token_type) { .number, .string => { var value_list: std.ArrayList(u8) = .empty; - errdefer { - value_list.deinit(allocator); - } + defer value_list.deinit(allocator); + if (try self.allocNextIntoArrayListMax(allocator, &value_list, when, max_value_len)) |slice| { return if (token_type == .number) Token{ .number = slice } -- 2.54.0