From: Joe Tsai Date: Wed, 25 Jun 2025 02:00:23 +0000 (-0700) Subject: encoding/json/jsontext: use bytes.Buffer.AvailableBuffer X-Git-Tag: go1.25rc2~2^2~5 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=86fca3dcb6;p=gostls13.git encoding/json/jsontext: use bytes.Buffer.AvailableBuffer This logic was added in October, 2021: https://github.com/go-json-experiment/json/commit/0b3bd4e1ed96587be346b7f964d6bb3fcfed65f4 before the introduction of bytes.Buffer.AvailableBuffer in March, 2023. https://go.dev/cl/474635 Updates #71845 Change-Id: I96800e1ba8fce15cc78316779db4ddcd4fe1d510 Reviewed-on: https://go-review.googlesource.com/c/go/+/685136 Reviewed-by: Damien Neil Auto-Submit: Joseph Tsai LUCI-TryBot-Result: Go LUCI Reviewed-by: Dmitri Shuralyov --- diff --git a/src/encoding/json/jsontext/encode.go b/src/encoding/json/jsontext/encode.go index bb9a41f0f6..562d217fef 100644 --- a/src/encoding/json/jsontext/encode.go +++ b/src/encoding/json/jsontext/encode.go @@ -114,7 +114,7 @@ func (e *encoderState) reset(b []byte, w io.Writer, opts ...Options) { e.state.reset() e.encodeBuffer = encodeBuffer{Buf: b, wr: w, bufStats: e.bufStats} if bb, ok := w.(*bytes.Buffer); ok && bb != nil { - e.Buf = bb.Bytes()[bb.Len():] // alias the unused buffer of bb + e.Buf = bb.AvailableBuffer() // alias the unused buffer of bb } opts2 := jsonopts.Struct{} // avoid mutating e.Struct in case it is part of opts opts2.Join(opts...)