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:
parent
b0b1af4b3b
commit
3e160d6f5d
27
jsoniter.go
27
jsoniter.go
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user