@@ -1343,14 +1343,15 @@ pub const Reader = struct {
13431343 if (is_windows ) {
13441344 // Unfortunately, `ReadFileScatter` cannot be used since it
13451345 // requires page alignment.
1346- assert (io_reader .seek == io_reader .end );
1347- io_reader .seek = 0 ;
1348- io_reader .end = 0 ;
1346+ if (io_reader .seek == io_reader .end ) {
1347+ io_reader .seek = 0 ;
1348+ io_reader .end = 0 ;
1349+ }
13491350 const first = data [0 ];
1350- if (first .len >= io_reader .buffer .len ) {
1351+ if (first .len >= io_reader .buffer .len - io_reader . end ) {
13511352 return readPositional (r , first );
13521353 } else {
1353- io_reader .end += try readPositional (r , io_reader .buffer );
1354+ io_reader .end += try readPositional (r , io_reader .buffer [ io_reader . end .. ] );
13541355 return 0 ;
13551356 }
13561357 }
@@ -1391,14 +1392,15 @@ pub const Reader = struct {
13911392 if (is_windows ) {
13921393 // Unfortunately, `ReadFileScatter` cannot be used since it
13931394 // requires page alignment.
1394- assert (io_reader .seek == io_reader .end );
1395- io_reader .seek = 0 ;
1396- io_reader .end = 0 ;
1395+ if (io_reader .seek == io_reader .end ) {
1396+ io_reader .seek = 0 ;
1397+ io_reader .end = 0 ;
1398+ }
13971399 const first = data [0 ];
1398- if (first .len >= io_reader .buffer .len ) {
1399- return readStreaming (r , first );
1400+ if (first .len >= io_reader .buffer .len - io_reader . end ) {
1401+ return readPositional (r , first );
14001402 } else {
1401- io_reader .end += try readStreaming (r , io_reader .buffer );
1403+ io_reader .end += try readPositional (r , io_reader .buffer [ io_reader . end .. ] );
14021404 return 0 ;
14031405 }
14041406 }
0 commit comments