@@ -1219,6 +1219,7 @@ pub const Reader = struct {
12191219 r .size = st .size ;
12201220 return st .size ;
12211221 } else {
1222+ r .mode = r .mode .toStreaming ();
12221223 r .size_err = error .Streaming ;
12231224 return error .Streaming ;
12241225 }
@@ -1419,13 +1420,8 @@ pub const Reader = struct {
14191420 const pos = r .pos ;
14201421 switch (r .mode ) {
14211422 .positional , .positional_reading = > {
1422- const size = r .size orelse {
1423- if (file .getEndPos ()) | size | {
1424- r .size = size ;
1425- } else | err | {
1426- r .size_err = err ;
1427- r .mode = r .mode .toStreaming ();
1428- }
1423+ const size = r .getSize () catch {
1424+ r .mode = r .mode .toStreaming ();
14291425 return 0 ;
14301426 };
14311427 const delta = @min (@intFromEnum (limit ), size - pos );
@@ -1472,14 +1468,7 @@ pub const Reader = struct {
14721468 r .pos = pos + n ;
14731469 return n ;
14741470 }
1475- const size = r .size orelse {
1476- if (file .getEndPos ()) | size | {
1477- r .size = size ;
1478- } else | err | {
1479- r .size_err = err ;
1480- }
1481- return 0 ;
1482- };
1471+ const size = r .getSize () catch return 0 ;
14831472 const n = @min (size - pos , maxInt (i64 ), @intFromEnum (limit ));
14841473 file .seekBy (n ) catch | err | {
14851474 r .seek_err = err ;
@@ -1912,15 +1901,7 @@ pub const Writer = struct {
19121901 var off : std.os.linux.off_t = undefined ;
19131902 const off_ptr : ? * std.os.linux.off_t , const count : usize = switch (file_reader .mode ) {
19141903 .positional = > o : {
1915- const size = file_reader .size orelse {
1916- if (file_reader .file .getEndPos ()) | size | {
1917- file_reader .size = size ;
1918- } else | err | {
1919- file_reader .size_err = err ;
1920- file_reader .mode = .streaming ;
1921- }
1922- return 0 ;
1923- };
1904+ const size = file_reader .getSize () catch return 0 ;
19241905 off = std .math .cast (std .os .linux .off_t , file_reader .pos ) orelse return error .ReadFailed ;
19251906 break :o .{ & off , @min (@intFromEnum (limit ), size - file_reader .pos , max_count ) };
19261907 },
0 commit comments