On Wednesday 11 April 2018 10:38 PM, Alistair Grant wrote:
StandardFileStream>>readInto:startingAt:count: assumes that
primitiveFileRead will always attempt to read count bytes, but it
actually only attempts to read 1.

StandardFileStream>>#basicNext uses

  position < readLimit ifFalse:

and does not check if the primRead returns < 0. Instead it should call whileFalse: and check if primRead returns <= 0 to check for EOF or error.

#primRead:... returns an error if the primitive fails and the file is closed. It should instead check for EOF or error and then return -1, otherwise it should return 0 (Data not ready?). Raise an error only if the underlying primitive fails for non-EOF cases.

Regards .. Subbu

Reply via email to