From 113aa7184e1d2f3858e68301dd1c2a6de51e6c1a Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 18 Feb 2023 18:00:24 -0700 Subject: decode_scan: Go ahead and decrement sc.offset when unreading --- decode_scan.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'decode_scan.go') diff --git a/decode_scan.go b/decode_scan.go index 507bc42..85f3190 100644 --- a/decode_scan.go +++ b/decode_scan.go @@ -40,6 +40,7 @@ func (sc *runeTypeScanner) ReadRuneType() (rune, int, jsonparse.RuneType, error) case sc.initialized && (sc.rType == jsonparse.RuneTypeError || sc.rType == jsonparse.RuneTypeEOF): // do nothing case sc.repeat: + sc.offset += int64(sc.rSize) _, _, _ = sc.inner.ReadRune() default: sc.initialized = true @@ -93,16 +94,13 @@ func (sc *runeTypeScanner) UnreadRune() error { return ErrInvalidUnreadRune } sc.repeat = true + sc.offset -= int64(sc.rSize) _ = sc.inner.UnreadRune() return nil } func (sc *runeTypeScanner) InputOffset() int64 { - ret := sc.offset - if sc.repeat { - ret -= int64(sc.rSize) - } - return ret + return sc.offset } func (sc *runeTypeScanner) PushReadBarrier() { -- cgit v1.2.3-2-g168b