in json/decode.go [50:85]
func (dec *Decoder) Next() error {
var (
n int
err error
reported bool
)
for !reported {
if len(dec.buffer) == 0 {
if dec.in == nil {
if err := dec.p.finalize(); err != nil {
return err
}
return io.EOF
}
n, err := dec.in.Read(dec.buffer)
dec.buffer = dec.buffer[:n]
if n == 0 && err != nil {
return err
}
}
n, reported, err = dec.p.feedUntil(dec.buffer)
if err != nil {
return err
}
dec.buffer = dec.buffer[n:]
if reported {
return nil
}
}
return nil
}