From cc6330cddfe63b7f2cd090259d7460104dc53a98 Mon Sep 17 00:00:00 2001 From: "duanyi.aster" Date: Mon, 8 Jul 2024 22:03:19 +0800 Subject: [PATCH] fix: check `CanSizeReuse` in `FreeBytes` --- internal/encoder/vars/stack.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/internal/encoder/vars/stack.go b/internal/encoder/vars/stack.go index 4d0e172b5..28a630b40 100644 --- a/internal/encoder/vars/stack.go +++ b/internal/encoder/vars/stack.go @@ -119,8 +119,10 @@ func NewBuffer() *bytes.Buffer { } func FreeBytes(p *[]byte) { - (*p) = (*p)[:0] - bytesPool.Put(p) + if rt.CanSizeResue(cap(*p)) { + (*p) = (*p)[:0] + bytesPool.Put(p) + } } func FreeStack(p *Stack) { @@ -129,8 +131,10 @@ func FreeStack(p *Stack) { } func FreeBuffer(p *bytes.Buffer) { - p.Reset() - bufferPool.Put(p) + if rt.CanSizeResue(cap(p.Bytes())) { + p.Reset() + bufferPool.Put(p) + } } var (