| ... | @@ -1343,14 +1343,15 @@ pub const Reader = struct { | ... | @@ -1343,14 +1343,15 @@ pub const Reader = struct { |
| 1343 | if (is_windows) { | 1343 | if (is_windows) { |
| 1344 | // Unfortunately, `ReadFileScatter` cannot be used since it | 1344 | // Unfortunately, `ReadFileScatter` cannot be used since it |
| 1345 | // requires page alignment. | 1345 | // requires page alignment. |
| 1346 | assert(io_reader.seek == io_reader.end); | 1346 | if (io_reader.seek == io_reader.end) { |
| 1347 | io_reader.seek = 0; | 1347 | io_reader.seek = 0; |
| 1348 | io_reader.end = 0; | 1348 | io_reader.end = 0; |
| | 1349 | } |
| 1349 | const first = data[0]; | 1350 | const first = data[0]; |
| 1350 | if (first.len >= io_reader.buffer.len) { | 1351 | if (first.len >= io_reader.buffer.len - io_reader.end) { |
| 1351 | return readPositional(r, first); | 1352 | return readPositional(r, first); |
| 1352 | } else { | 1353 | } else { |
| 1353 | io_reader.end += try readPositional(r, io_reader.buffer); | 1354 | io_reader.end += try readPositional(r, io_reader.buffer[io_reader.end..]); |
| 1354 | return 0; | 1355 | return 0; |
| 1355 | } | 1356 | } |
| 1356 | } | 1357 | } |
| ... | @@ -1391,14 +1392,15 @@ pub const Reader = struct { | ... | @@ -1391,14 +1392,15 @@ pub const Reader = struct { |
| 1391 | if (is_windows) { | 1392 | if (is_windows) { |
| 1392 | // Unfortunately, `ReadFileScatter` cannot be used since it | 1393 | // Unfortunately, `ReadFileScatter` cannot be used since it |
| 1393 | // requires page alignment. | 1394 | // requires page alignment. |
| 1394 | assert(io_reader.seek == io_reader.end); | 1395 | if (io_reader.seek == io_reader.end) { |
| 1395 | io_reader.seek = 0; | 1396 | io_reader.seek = 0; |
| 1396 | io_reader.end = 0; | 1397 | io_reader.end = 0; |
| | 1398 | } |
| 1397 | const first = data[0]; | 1399 | const first = data[0]; |
| 1398 | if (first.len >= io_reader.buffer.len) { | 1400 | if (first.len >= io_reader.buffer.len - io_reader.end) { |
| 1399 | return readStreaming(r, first); | 1401 | return readPositional(r, first); |
| 1400 | } else { | 1402 | } else { |
| 1401 | io_reader.end += try readStreaming(r, io_reader.buffer); | 1403 | io_reader.end += try readPositional(r, io_reader.buffer[io_reader.end..]); |
| 1402 | return 0; | 1404 | return 0; |
| 1403 | } | 1405 | } |
| 1404 | } | 1406 | } |