aboutsummaryrefslogtreecommitdiff
path: root/src/encoding/json/jsontext/decode.go
diff options
context:
space:
mode:
authorJoe Tsai <joetsai@digital-static.net>2025-06-24 18:56:26 -0700
committerGopher Robot <gobot@golang.org>2025-07-25 10:47:45 -0700
commitebdbfccd989b07a8aef75af5fbe7448f035ee239 (patch)
tree6072864893f39149ffcc48c85bc5780175da581b /src/encoding/json/jsontext/decode.go
parent91c4f0ccd542a505f72ad0db952f55688851e49e (diff)
downloadgo-ebdbfccd989b07a8aef75af5fbe7448f035ee239.tar.xz
encoding/json/jsontext: preserve buffer capacity in Encoder.Reset
This does the equivalent of CL 681177 for the Encoder. It preserves the internal buffer between resets. Change-Id: I5e9353b6d7755e067d4f9a4d1ea3d8f056253027 Reviewed-on: https://go-review.googlesource.com/c/go/+/690375 Reviewed-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com> Auto-Submit: Joseph Tsai <joetsai@digital-static.net> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Damien Neil <dneil@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com>
Diffstat (limited to 'src/encoding/json/jsontext/decode.go')
-rw-r--r--src/encoding/json/jsontext/decode.go6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/encoding/json/jsontext/decode.go b/src/encoding/json/jsontext/decode.go
index b9f247bff4..f505de4468 100644
--- a/src/encoding/json/jsontext/decode.go
+++ b/src/encoding/json/jsontext/decode.go
@@ -138,12 +138,10 @@ func (d *Decoder) Reset(r io.Reader, opts ...Options) {
case d.s.Flags.Get(jsonflags.WithinArshalCall):
panic("jsontext: cannot reset Decoder passed to json.UnmarshalerFrom")
}
- // If the decoder was previously aliasing a bytes.Buffer,
- // invalidate the alias to avoid writing into the bytes.Buffer's
- // internal buffer.
+ // Reuse the buffer if it does not alias a previous [bytes.Buffer].
b := d.s.buf[:0]
if _, ok := d.s.rd.(*bytes.Buffer); ok {
- b = nil // avoid reusing b since it aliases the previous bytes.Buffer.
+ b = nil
}
d.s.reset(b, r, opts...)
}