1
0
mirror of https://github.com/json-iterator/go.git synced 2025-04-23 11:37:32 +02:00

fix read from io.Reader, n == 0 is not eof

This commit is contained in:
Tao Wen 2016-12-05 14:18:16 +08:00
parent b0b1af4b3b
commit 3e160d6f5d

View File

@ -73,20 +73,25 @@ func (iter *Iterator) readByte() (ret byte) {
iter.Error = io.EOF iter.Error = io.EOF
return return
} }
n, err := iter.reader.Read(iter.buf) for {
if err != nil { n, err := iter.reader.Read(iter.buf)
iter.Error = err if n == 0 {
return if err != nil {
iter.Error = err
return
} else {
// n == 0, err == nil is not EOF
continue
}
} else {
iter.head = 0
iter.tail = n
break
}
} }
if n == 0 {
iter.Error = io.EOF
return
}
iter.head = 0
iter.tail = n
} }
ret = iter.buf[iter.head] ret = iter.buf[iter.head]
iter.head += 1 iter.head++
return ret return ret
} }