diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-02-15 23:45:07 -0700 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-02-16 22:56:05 -0700 |
commit | 0d23080e1f2af81d8d4656c3b72791b26f52f361 (patch) | |
tree | 8f0247b646291577f54f7d164b7fed675388c72c /reencode.go | |
parent | 30e0ee4ced0be18b4df91674fd6f073793b61fe9 (diff) |
reencode: utf8.RuneLen is showing up in the profile
Diffstat (limited to 'reencode.go')
-rw-r--r-- | reencode.go | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/reencode.go b/reencode.go index f18888c..d8cdb71 100644 --- a/reencode.go +++ b/reencode.go @@ -165,14 +165,14 @@ func (enc *ReEncoder) Write(p []byte) (int, error) { c, size := utf8.DecodeRune(enc.buf[:]) n += size - enc.bufLen enc.bufLen = 0 - enc.handleRune(c) + enc.handleRune(c, size) if enc.err != nil { return 0, enc.err } } for utf8.FullRune(p[n:]) { c, size := utf8.DecodeRune(p[n:]) - enc.handleRune(c) + enc.handleRune(c, size) if enc.err != nil { return n, enc.err } @@ -194,14 +194,14 @@ func (enc *ReEncoder) WriteString(p string) (int, error) { c, size := utf8.DecodeRune(enc.buf[:]) n += size - enc.bufLen enc.bufLen = 0 - enc.handleRune(c) + enc.handleRune(c, size) if enc.err != nil { return 0, enc.err } } for utf8.FullRuneInString(p[n:]) { c, size := utf8.DecodeRuneInString(p[n:]) - enc.handleRune(c) + enc.handleRune(c, size) if enc.err != nil { return n, enc.err } @@ -253,7 +253,7 @@ func (enc *ReEncoder) Close() error { return nil } -func (enc *ReEncoder) handleRune(c rune) { +func (enc *ReEncoder) handleRune(c rune, size int) { rehandle: t, err := enc.par.HandleRune(c) if err != nil { @@ -283,7 +283,7 @@ rehandle: } } - enc.inputPos += int64(utf8.RuneLen(c)) + enc.inputPos += int64(size) } // semi-public API ///////////////////////////////////////////////////////////// |