From c427a15a7efb938ddfe82fbff1fd61b31418b985 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Wed, 2 Apr 2025 19:57:57 +0900 Subject: [PATCH] fix(pbuf): add keepalive in deep func --- pbuf/bytes.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pbuf/bytes.go b/pbuf/bytes.go index db40e40..6bec3a7 100644 --- a/pbuf/bytes.go +++ b/pbuf/bytes.go @@ -2,6 +2,7 @@ package pbuf import ( "bytes" + "runtime" "github.com/fumiama/orbyte" ) @@ -29,6 +30,7 @@ func BufferItemToBytes[USRDAT any]( func (b UserBytes[USRDAT]) B(f func([]byte, *USRDAT)) { b.buf.P(func(ub *UserBuffer[USRDAT]) { f(ub.Buffer.Bytes(), &ub.DAT) + runtime.KeepAlive(b.buf) }) } @@ -92,6 +94,7 @@ func (b UserBytes[USRDAT]) Cap() (c int) { func (b UserBytes[USRDAT]) V(f func([]byte)) { b.buf.P(func(buf *UserBuffer[USRDAT]) { f(buf.Bytes()[b.a:b.b]) + runtime.KeepAlive(b.buf) }) }