On Windows, the overlapped structure high bits were always zero, so reading through a file > 4gb would loop forever.
parent
d23105c6c3
commit
8464b116fc
|
|
@ -68,7 +68,10 @@ C: <io-callback> io-callback
|
||||||
|
|
||||||
: make-overlapped ( port -- overlapped-ext )
|
: make-overlapped ( port -- overlapped-ext )
|
||||||
[ (make-overlapped) ] dip
|
[ (make-overlapped) ] dip
|
||||||
handle>> ptr>> [ >>offset ] when* ;
|
handle>> ptr>> [
|
||||||
|
[ 32 bits >>offset ]
|
||||||
|
[ -32 shift >>offset-high ] bi
|
||||||
|
] when* ;
|
||||||
|
|
||||||
M: windows FileArgs-overlapped ( port -- overlapped )
|
M: windows FileArgs-overlapped ( port -- overlapped )
|
||||||
make-overlapped ;
|
make-overlapped ;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue