]> Cypherpunks repositories - gostls13.git/commitdiff
encoding/json: use base64.Encoding.AppendEncode
authorAndy Pan <panjf2000@gmail.com>
Fri, 18 Aug 2023 03:54:48 +0000 (11:54 +0800)
committerGopher Robot <gobot@golang.org>
Fri, 18 Aug 2023 21:40:31 +0000 (21:40 +0000)
For #53693

Change-Id: I6a428a4a10a2e2efa03296f539e190f0743c1f46
Reviewed-on: https://go-review.googlesource.com/c/go/+/520755
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Joseph Tsai <joetsai@digital-static.net>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Andy Pan <panjf2000@gmail.com>

src/encoding/json/encode.go

index 536ec21f4f05aa3d49c3cb84eef76d13ec6d4d23..38b98a57f7c7fe6950051dd7365f2a3b93950963 100644 (file)
@@ -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)
 }