Refactor encodeEscapedString ( for improvement performance )

This commit is contained in:
Masaaki Goshima 2020-08-15 23:11:06 +09:00
parent 9143f35c93
commit a9e37932c4
1 changed files with 4 additions and 4 deletions

View File

@ -219,21 +219,21 @@ var hex = "0123456789abcdef"
func (e *Encoder) encodeEscapedString(s string) {
valLen := len(s)
e.buf = append(e.buf, '"')
// write string, the fast path, without utf8 and escape support
i := 0
for ; i < valLen; i++ {
c := s[i]
if c < utf8.RuneSelf && htmlSafeSet[c] {
e.buf = append(e.buf, c)
} else {
if c >= utf8.RuneSelf || !htmlSafeSet[c] {
break
}
}
e.buf = append(e.buf, '"')
if i == valLen {
e.buf = append(e.buf, s...)
e.buf = append(e.buf, '"')
return
}
e.buf = append(e.buf, s[:i]...)
e.writeStringSlowPathWithHTMLEscaped(i, s, valLen)
}