authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-01-15 19:43:46-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-01-15 19:43:46-08:00
logcf898e242a32b589e63a8de6674a5c2d6f5225bc
tree055694c4daa959ce1c09591f860e32e6feea33a1
parent605311211b457d9c9a08d354c8fbe40257c4d649

std.Build.Step.CheckObject: better EOF handling

when unexpected end of stream occurs, just add that as a token into the text

1 files changed, 16 insertions(+), 3 deletions(-)

lib/std/Build/Step/CheckObject.zig+16-3
...@@ -2424,7 +2424,22 @@ const WasmDumper = struct {...@@ -2424,7 +2424,22 @@ const WasmDumper = struct {
2424 }2424 }
24252425
2426 var output = std.ArrayList(u8).init(gpa);2426 var output = std.ArrayList(u8).init(gpa);
2427 errdefer output.deinit();2427 defer output.deinit();
2428 parseAndDumpInner(step, check, bytes, &fbs, &output) catch |err| switch (err) {
2429 error.EndOfStream => try output.appendSlice("\n<UnexpectedEndOfStream>"),
2430 else => |e| return e,
2431 };
2432 return output.toOwnedSlice();
2433 }
2434
2435 fn parseAndDumpInner(
2436 step: *Step,
2437 check: Check,
2438 bytes: []const u8,
2439 fbs: *std.io.FixedBufferStream([]const u8),
2440 output: *std.ArrayList(u8),
2441 ) !void {
2442 const reader = fbs.reader();
2428 const writer = output.writer();2443 const writer = output.writer();
24292444
2430 switch (check.kind) {2445 switch (check.kind) {
...@@ -2442,8 +2457,6 @@ const WasmDumper = struct {...@@ -2442,8 +2457,6 @@ const WasmDumper = struct {
24422457
2443 else => return step.fail("invalid check kind for Wasm file format: {s}", .{@tagName(check.kind)}),2458 else => return step.fail("invalid check kind for Wasm file format: {s}", .{@tagName(check.kind)}),
2444 }2459 }
2445
2446 return output.toOwnedSlice();
2447 }2460 }
24482461
2449 fn parseAndDumpSection(2462 fn parseAndDumpSection(