Merge pull request '[agent/codex:gpt-5.3-codex-spark] Read docs/RFC.md fully. Find ONE feature described in the sp...' (#27) from main into dev

This commit is contained in:
Virgil 2026-04-03 19:40:10 +00:00
commit 71fcb276d8
2 changed files with 43 additions and 0 deletions

View file

@ -95,6 +95,15 @@ func (b *Buffer) CopyFrom(src []byte) int {
return copied
}
// Close releases the buffer and implements io.Closer.
//
// buffer := NewBuffer(16)
// defer buffer.Close()
func (b *Buffer) Close() error {
b.Free()
return nil
}
// Bytes returns the mutable byte slice backed by the buffer memory.
//
// buffer := NewBuffer(4)

View file

@ -54,6 +54,40 @@ func TestBufferDoubleFreePanics(t *testing.T) {
})
}
func TestBufferCloseReleasesMemory(t *testing.T) {
t.Parallel()
buffer := NewBuffer(4)
if err := buffer.Close(); err != nil {
t.Fatalf("expected close to return nil, got %v", err)
}
if !buffer.IsFreed() {
t.Fatal("expected buffer to be freed by Close")
}
}
func TestBufferClosePanicsOnDoubleClose(t *testing.T) {
t.Parallel()
buffer := NewBuffer(1)
if err := buffer.Close(); err != nil {
t.Fatalf("expected close to return nil, got %v", err)
}
assertPanics(t, "double-free", func() {
_ = buffer.Close()
})
}
func TestBufferCloseNil(t *testing.T) {
t.Parallel()
var buffer *Buffer
if err := buffer.Close(); err != nil {
t.Fatalf("expected nil buffer close to return nil, got %v", err)
}
}
func TestBufferUseAfterFreePanics(t *testing.T) {
t.Parallel()