From: Andy Pan Date: Fri, 18 Aug 2023 03:54:48 +0000 (+0800) Subject: encoding/json: use base64.Encoding.AppendEncode X-Git-Tag: go1.22rc1~1214 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3419a0aec1a664b32c7b9b741c69b90dcb89bb4b;p=gostls13.git encoding/json: use base64.Encoding.AppendEncode For #53693 Change-Id: I6a428a4a10a2e2efa03296f539e190f0743c1f46 Reviewed-on: https://go-review.googlesource.com/c/go/+/520755 Reviewed-by: Dmitri Shuralyov Reviewed-by: Joseph Tsai Reviewed-by: Ian Lance Taylor TryBot-Result: Gopher Robot Auto-Submit: Dmitri Shuralyov Run-TryBot: Ian Lance Taylor Auto-Submit: Ian Lance Taylor Run-TryBot: Andy Pan --- diff --git a/src/encoding/json/encode.go b/src/encoding/json/encode.go index 536ec21f4f..38b98a57f7 100644 --- a/src/encoding/json/encode.go +++ b/src/encoding/json/encode.go @@ -781,15 +781,11 @@ func encodeByteSlice(e *encodeState, v reflect.Value, _ encOpts) { e.WriteString("null") return } - s := v.Bytes() - encodedLen := base64.StdEncoding.EncodedLen(len(s)) - e.Grow(len(`"`) + encodedLen + len(`"`)) - // TODO(https://go.dev/issue/53693): Use base64.Encoding.AppendEncode. + s := v.Bytes() b := e.AvailableBuffer() b = append(b, '"') - base64.StdEncoding.Encode(b[len(b):][:encodedLen], s) - b = b[:len(b)+encodedLen] + b = base64.StdEncoding.AppendEncode(b, s) b = append(b, '"') e.Write(b) }