authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-06-16 09:56:07-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-01 16:35:29-07:00
logef8d7aa25110699aa5ba9d4e0825155faa8c4319
tree94415c76b23d07ac37db7d8e71c8c8c116140fb4
parentf04bc71ed7b7e8ced8c3b6a8b130b16c8978de78

std: fix a couple compilation errors


3 files changed, 23 insertions(+), 15 deletions(-)

lib/std/Progress.zig+2-2
...@@ -611,7 +611,7 @@ pub fn unlockStdErr() void {...@@ -611,7 +611,7 @@ pub fn unlockStdErr() void {
611const stderr_writer: *Writer = &stderr_file_writer.interface;611const stderr_writer: *Writer = &stderr_file_writer.interface;
612/// Protected by `stderr_mutex`.612/// Protected by `stderr_mutex`.
613var stderr_file_writer: std.fs.File.Writer = .{613var stderr_file_writer: std.fs.File.Writer = .{
614 .interface = std.fs.File.Writer.init_interface(&.{}),614 .interface = std.fs.File.Writer.initInterface(&.{}),
615 .file = if (is_windows) undefined else .stderr(),615 .file = if (is_windows) undefined else .stderr(),
616 .mode = .streaming,616 .mode = .streaming,
617};617};
...@@ -628,7 +628,7 @@ pub fn lockStderrWriter(buffer: []u8) *Writer {...@@ -628,7 +628,7 @@ pub fn lockStderrWriter(buffer: []u8) *Writer {
628 if (is_windows) stderr_file_writer.file = .stderr();628 if (is_windows) stderr_file_writer.file = .stderr();
629 stderr_writer.flush() catch {};629 stderr_writer.flush() catch {};
630 stderr_writer.buffer = buffer;630 stderr_writer.buffer = buffer;
631 return &stderr_writer;631 return stderr_writer;
632}632}
633633
634pub fn unlockStderrWriter() void {634pub fn unlockStderrWriter() void {
lib/std/fs/File.zig+20-12
...@@ -993,7 +993,7 @@ pub const Reader = struct {...@@ -993,7 +993,7 @@ pub const Reader = struct {
993 };993 };
994 var remaining = std.math.cast(u64, offset) orelse return seek_err;994 var remaining = std.math.cast(u64, offset) orelse return seek_err;
995 while (remaining > 0) {995 while (remaining > 0) {
996 const n = discard(r, .limited(remaining)) catch |err| {996 const n = discard(&r.interface, .limited(remaining)) catch |err| {
997 r.seek_err = err;997 r.seek_err = err;
998 return err;998 return err;
999 };999 };
...@@ -1252,25 +1252,29 @@ pub const Writer = struct {...@@ -1252,25 +1252,29 @@ pub const Writer = struct {
1252 /// vectors through the underlying write calls as possible.1252 /// vectors through the underlying write calls as possible.
1253 const max_buffers_len = 16;1253 const max_buffers_len = 16;
12541254
1255 pub fn init(file: File, buffer: []u8) std.io.Writer {1255 pub fn init(file: File, buffer: []u8) Writer {
1256 return initMode(file, buffer, .positional);1256 return initMode(file, buffer, .positional);
1257 }1257 }
12581258
1259 pub fn initMode(file: File, buffer: []u8, init_mode: Writer.Mode) std.io.Writer {1259 pub fn initMode(file: File, buffer: []u8, init_mode: Writer.Mode) Writer {
1260 return .{1260 return .{
1261 .file = file,1261 .file = file,
1262 .interface = .{1262 .interface = initInterface(buffer),
1263 .context = undefined,
1264 .vtable = &.{
1265 .drain = drain,
1266 .sendFile = sendFile,
1267 },
1268 .buffer = buffer,
1269 },
1270 .mode = init_mode,1263 .mode = init_mode,
1271 };1264 };
1272 }1265 }
12731266
1267 pub fn initInterface(buffer: []u8) std.io.Writer {
1268 return .{
1269 .context = undefined,
1270 .vtable = &.{
1271 .drain = drain,
1272 .sendFile = sendFile,
1273 },
1274 .buffer = buffer,
1275 };
1276 }
1277
1274 pub fn moveToReader(w: *Writer) Reader {1278 pub fn moveToReader(w: *Writer) Reader {
1275 defer w.* = undefined;1279 defer w.* = undefined;
1276 return .{1280 return .{
...@@ -1335,7 +1339,11 @@ pub const Writer = struct {...@@ -1335,7 +1339,11 @@ pub const Writer = struct {
1335 };1339 };
1336 }1340 }
13371341
1338 pub fn sendFile(io_writer: *Writer, file_reader: *Reader, limit: std.io.Limit) std.io.Writer.FileError!usize {1342 pub fn sendFile(
1343 io_writer: *std.io.Writer,
1344 file_reader: *Reader,
1345 limit: std.io.Limit,
1346 ) std.io.Writer.FileError!usize {
1339 const w: *Writer = @fieldParentPtr("interface", io_writer);1347 const w: *Writer = @fieldParentPtr("interface", io_writer);
1340 const out_fd = w.file.handle;1348 const out_fd = w.file.handle;
1341 const in_fd = file_reader.file.handle;1349 const in_fd = file_reader.file.handle;
lib/std/io/Reader.zig+1-1
...@@ -162,7 +162,7 @@ pub fn defaultDiscard(r: *Reader, limit: Limit) Error!usize {...@@ -162,7 +162,7 @@ pub fn defaultDiscard(r: *Reader, limit: Limit) Error!usize {
162 };162 };
163 if (n > @intFromEnum(limit)) {163 if (n > @intFromEnum(limit)) {
164 const over_amt = n - @intFromEnum(limit);164 const over_amt = n - @intFromEnum(limit);
165 assert(over_amt <= w.buffer.end); // limit may be exceeded only by an amount within buffer capacity.165 assert(over_amt <= w.buffer.len); // limit may be exceeded only by an amount within buffer capacity.
166 r.seek = w.end - over_amt;166 r.seek = w.end - over_amt;
167 r.end = w.end;167 r.end = w.end;
168 return @intFromEnum(limit);168 return @intFromEnum(limit);