Allow for bufio Readers that deliver data in chunks (like our unit test Reader)

This commit is contained in:
Maurice Makaay 2019-07-17 23:03:00 +00:00
parent 6d3eacdcae
commit 0a4e44b8f8
1 changed files with 9 additions and 5 deletions

View File

@ -157,12 +157,16 @@ func (buf *Buffer) fill(minBytes int) {
}
buf.grow(minBytes)
n, err := buf.bufio.Read(buf.buffer[bufLen:cap(buf.buffer)])
buf.buffer = buf.buffer[:bufLen+n]
for bufLen < minBytes {
n, err := buf.bufio.Read(buf.buffer[bufLen:cap(buf.buffer)])
bufLen += n
buf.buffer = buf.buffer[:bufLen]
if err != nil {
buf.err = err
buf.errOffset = bufLen + n
if err != nil {
buf.err = err
buf.errOffset = bufLen
break
}
}
}