mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
incr-check: read/write messages as little endian
This commit is contained in:
parent
acfb88e9a5
commit
8817fc8958
@ -290,9 +290,8 @@ const Eval = struct {
|
|||||||
return;
|
return;
|
||||||
},
|
},
|
||||||
.emit_digest => {
|
.emit_digest => {
|
||||||
const EbpHdr = std.zig.Server.Message.EmitDigest;
|
var r: std.Io.Reader = .fixed(body);
|
||||||
const ebp_hdr = @as(*align(1) const EbpHdr, @ptrCast(body));
|
_ = r.takeStruct(std.zig.Server.Message.EmitDigest, .little) catch unreachable;
|
||||||
_ = ebp_hdr;
|
|
||||||
if (stderr.bufferedLen() > 0) {
|
if (stderr.bufferedLen() > 0) {
|
||||||
const stderr_data = try poller.toOwnedSlice(.stderr);
|
const stderr_data = try poller.toOwnedSlice(.stderr);
|
||||||
if (eval.allow_stderr) {
|
if (eval.allow_stderr) {
|
||||||
@ -307,7 +306,7 @@ const Eval = struct {
|
|||||||
// This message indicates the end of the update.
|
// This message indicates the end of the update.
|
||||||
}
|
}
|
||||||
|
|
||||||
const digest = body[@sizeOf(EbpHdr)..][0..Cache.bin_digest_len];
|
const digest = r.takeArray(Cache.bin_digest_len) catch unreachable;
|
||||||
const result_dir = ".local-cache" ++ std.fs.path.sep_str ++ "o" ++ std.fs.path.sep_str ++ Cache.binToHex(digest.*);
|
const result_dir = ".local-cache" ++ std.fs.path.sep_str ++ "o" ++ std.fs.path.sep_str ++ Cache.binToHex(digest.*);
|
||||||
|
|
||||||
const bin_name = try std.zig.EmitArtifact.bin.cacheName(arena, .{
|
const bin_name = try std.zig.EmitArtifact.bin.cacheName(arena, .{
|
||||||
@ -519,7 +518,10 @@ const Eval = struct {
|
|||||||
.tag = .update,
|
.tag = .update,
|
||||||
.bytes_len = 0,
|
.bytes_len = 0,
|
||||||
};
|
};
|
||||||
try eval.child.stdin.?.writeAll(std.mem.asBytes(&header));
|
var w = eval.child.stdin.?.writer(&.{});
|
||||||
|
w.interface.writeStruct(header, .little) catch |err| switch (err) {
|
||||||
|
error.WriteFailed => return w.err.?,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
fn end(eval: *Eval, poller: *Poller) !void {
|
fn end(eval: *Eval, poller: *Poller) !void {
|
||||||
@ -836,9 +838,12 @@ fn requestExit(child: *std.process.Child, eval: *Eval) void {
|
|||||||
.tag = .exit,
|
.tag = .exit,
|
||||||
.bytes_len = 0,
|
.bytes_len = 0,
|
||||||
};
|
};
|
||||||
child.stdin.?.writeAll(std.mem.asBytes(&header)) catch |err| switch (err) {
|
var w = eval.child.stdin.?.writer(&.{});
|
||||||
error.BrokenPipe => {},
|
w.interface.writeStruct(header, .little) catch |err| switch (err) {
|
||||||
else => eval.fatal("failed to send exit: {s}", .{@errorName(err)}),
|
error.WriteFailed => switch (w.err.?) {
|
||||||
|
error.BrokenPipe => {},
|
||||||
|
else => |e| eval.fatal("failed to send exit: {s}", .{@errorName(e)}),
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
// Send EOF to stdin.
|
// Send EOF to stdin.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user