From f19b691112671f6d1201e09d851a1990c5ac89ee Mon Sep 17 00:00:00 2001 From: Virgil Date: Fri, 3 Apr 2026 19:31:31 +0000 Subject: [PATCH] feat(core): make Buffer.IsFreed nil-safe Co-Authored-By: Virgil --- buffer.go | 3 +++ buffer_test.go | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/buffer.go b/buffer.go index 4723a6a..afdb3ea 100644 --- a/buffer.go +++ b/buffer.go @@ -123,6 +123,9 @@ func (b *Buffer) Len() int { // buffer := NewBuffer(4) // if buffer.IsFreed() { ... } func (b *Buffer) IsFreed() bool { + if b == nil { + return true + } return b.freed.Load() } diff --git a/buffer_test.go b/buffer_test.go index df084cb..f45267b 100644 --- a/buffer_test.go +++ b/buffer_test.go @@ -71,6 +71,15 @@ func TestBufferUseAfterFreePanics(t *testing.T) { }) } +func TestBufferIsFreedIsNilSafe(t *testing.T) { + t.Parallel() + + var nilBuffer *Buffer + if !nilBuffer.IsFreed() { + t.Fatal("expected nil buffer to report freed") + } +} + func TestCStringRoundTrip(t *testing.T) { t.Parallel()