diff options
Diffstat (limited to 'src/encoding/json/stream.go')
| -rw-r--r-- | src/encoding/json/stream.go | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/encoding/json/stream.go b/src/encoding/json/stream.go index 53e9b0fa9a..3e8fe40268 100644 --- a/src/encoding/json/stream.go +++ b/src/encoding/json/stream.go @@ -437,6 +437,7 @@ func (dec *Decoder) More() bool { } func (dec *Decoder) peek() (byte, error) { + var err error for { for i := dec.scanp; i < len(dec.buf); i++ { c := dec.buf[i] @@ -446,9 +447,11 @@ func (dec *Decoder) peek() (byte, error) { dec.scanp = i return c, nil } - if err := dec.refill(); err != nil { + // buffer has been scanned, now report any error + if err != nil { return 0, err } + err = dec.refill() } } |
