diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2025-07-20 20:46:07 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2025-07-21 12:32:37 -0700 |
| commit | fe10c66d664ae7b1acb2bcf01600eeacc2958fc7 (patch) | |
| tree | 0419f39533d6564c5b2737f1d5c55e5bb3d49f4f /lib/std/fs | |
| parent | 38559e282b137ea365ab074e3d78cf3312dd5702 (diff) | |
| download | zig-fe10c66d664ae7b1acb2bcf01600eeacc2958fc7.tar.gz zig-fe10c66d664ae7b1acb2bcf01600eeacc2958fc7.zip | |
std.fs.File.Reader: only fcopyfile if size available
Diffstat (limited to 'lib/std/fs')
| -rw-r--r-- | lib/std/fs/File.zig | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/std/fs/File.zig b/lib/std/fs/File.zig index 85264dd4db..04b2f1dd94 100644 --- a/lib/std/fs/File.zig +++ b/lib/std/fs/File.zig @@ -1825,6 +1825,7 @@ pub const Writer = struct { if (file_reader.pos != 0) break :fcf; if (w.pos != 0) break :fcf; if (limit != .unlimited) break :fcf; + const size = file_reader.getSize() catch break :fcf; const rc = std.c.fcopyfile(in_fd, out_fd, null, .{ .DATA = true }); switch (posix.errno(rc)) { .SUCCESS => {}, @@ -1845,10 +1846,9 @@ pub const Writer = struct { return 0; }, } - const n = if (file_reader.size) |size| size else @panic("TODO figure out how much copied"); - file_reader.pos = n; - w.pos = n; - return n; + file_reader.pos = size; + w.pos = size; + return size; } return error.Unimplemented; |
