Skip to content

Commit dca2303

Browse files
richardartoulRichard Artoul
authored and
Richard Artoul
committed
Add Reset method to buffer and cleanup comments (#1)
1 parent 52255a1 commit dca2303

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

go/arrow/memory/buffer.go

+20-3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/apache/arrow/go/arrow/internal/debug"
2323
)
2424

25+
// Buffer is a wrapper type for a buffer of bytes.
2526
type Buffer struct {
2627
refCount int64
2728
buf []byte
@@ -35,7 +36,7 @@ func NewBufferBytes(data []byte) *Buffer {
3536
return &Buffer{refCount: 0, buf: data, length: len(data)}
3637
}
3738

38-
// NewBuffer creates a mutable, resizable buffer with an Allocator for managing memory.
39+
// NewResizableBuffer creates a mutable, resizable buffer with an Allocator for managing memory.
3940
func NewResizableBuffer(mem Allocator) *Buffer {
4041
return &Buffer{refCount: 1, mutable: true, mem: mem}
4142
}
@@ -60,15 +61,28 @@ func (b *Buffer) Release() {
6061
}
6162
}
6263

64+
// Reset resets the buffer for reuse.
65+
func (b *Buffer) Reset(buf []byte) {
66+
b.buf = buf
67+
b.length = len(buf)
68+
}
69+
6370
// Buf returns the slice of memory allocated by the Buffer, which is adjusted by calling Reserve.
6471
func (b *Buffer) Buf() []byte { return b.buf }
6572

6673
// Bytes returns a slice of size Len, which is adjusted by calling Resize.
6774
func (b *Buffer) Bytes() []byte { return b.buf[:b.length] }
75+
76+
// Mutable returns a bool indicating whether the buffer is mutable or not.
6877
func (b *Buffer) Mutable() bool { return b.mutable }
69-
func (b *Buffer) Len() int { return b.length }
70-
func (b *Buffer) Cap() int { return len(b.buf) }
7178

79+
// Len returns the length of the buffer.
80+
func (b *Buffer) Len() int { return b.length }
81+
82+
// Cap returns the capacity of the buffer.
83+
func (b *Buffer) Cap() int { return len(b.buf) }
84+
85+
// Reserve reserves the provided amount of capacity for the buffer.
7286
func (b *Buffer) Reserve(capacity int) {
7387
if capacity > len(b.buf) {
7488
newCap := roundUpToMultipleOf64(capacity)
@@ -80,10 +94,13 @@ func (b *Buffer) Reserve(capacity int) {
8094
}
8195
}
8296

97+
// Resize resizes the buffer to the target size.
8398
func (b *Buffer) Resize(newSize int) {
8499
b.resize(newSize, true)
85100
}
86101

102+
// ResizeNoShrink resizes the buffer to the target size, but will not
103+
// shrink it.
87104
func (b *Buffer) ResizeNoShrink(newSize int) {
88105
b.resize(newSize, false)
89106
}

0 commit comments

Comments
 (0)