From a8d2fdc1ae082f350c221dbea0cfc9065a6ef2c0 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Fri, 27 Jan 2023 01:59:27 -0700 Subject: decode: Rewrite .scan() to avoid making a new scanner --- decode.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/decode.go b/decode.go index 645f8de..2078f92 100644 --- a/decode.go +++ b/decode.go @@ -760,14 +760,15 @@ func (dec *Decoder) decode(val reflect.Value, nullOK bool) { } func (dec *Decoder) scan(out fastio.RuneWriter) { - limiter := dec.limitingScanner() + dec.io.PushReadBarrier() for { - c, _, err := limiter.ReadRune() - if err == io.EOF { - return + c, t := dec.readRune() + if t == jsonparse.RuneTypeEOF { + break } _, _ = out.WriteRune(c) } + dec.io.PopReadBarrier() } func (dec *Decoder) scanNumber(gTyp reflect.Type, out fastio.RuneWriter) { -- cgit v1.1-4-g5e80