diff --git a/go/arrow/compute/utils.go b/go/arrow/compute/utils.go index b20688539f146..899fe4cfbf4cc 100644 --- a/go/arrow/compute/utils.go +++ b/go/arrow/compute/utils.go @@ -21,7 +21,6 @@ package compute import ( "fmt" "io" - "math" "time" "github.com/apache/arrow/go/v17/arrow" @@ -30,6 +29,7 @@ import ( "github.com/apache/arrow/go/v17/arrow/compute/internal/kernels" "github.com/apache/arrow/go/v17/arrow/internal/debug" "github.com/apache/arrow/go/v17/arrow/memory" + "github.com/apache/arrow/go/v17/internal/utils" "golang.org/x/xerrors" ) @@ -43,9 +43,9 @@ func (b *bufferWriteSeeker) Reserve(nbytes int) { if b.buf == nil { b.buf = memory.NewResizableBuffer(b.mem) } - newCap := int(math.Max(float64(b.buf.Cap()), 256)) + newCap := utils.Max(b.buf.Cap(), 256) for newCap < b.pos+nbytes { - newCap = bitutil.NextPowerOf2(newCap) + newCap = bitutil.NextPowerOf2(b.pos + nbytes) } b.buf.Reserve(newCap) } diff --git a/go/parquet/internal/encoding/types.go b/go/parquet/internal/encoding/types.go index 2d7a5d6b1d166..6962c95d4f818 100644 --- a/go/parquet/internal/encoding/types.go +++ b/go/parquet/internal/encoding/types.go @@ -187,7 +187,7 @@ func (b *PooledBufferWriter) Reserve(nbytes int) { newCap := utils.Max(b.buf.Cap(), 256) for newCap < b.pos+nbytes { - newCap = bitutil.NextPowerOf2(newCap) + newCap = bitutil.NextPowerOf2(b.pos + nbytes) } b.buf.Reserve(newCap) } @@ -380,9 +380,9 @@ func (b *BufferWriter) Reserve(nbytes int) { if b.buffer == nil { b.buffer = memory.NewResizableBuffer(b.mem) } - newCap := utils.Max(b.buffer.Cap()+b.offset, 256) - for newCap < b.pos+nbytes+b.offset { - newCap = bitutil.NextPowerOf2(newCap) + newCap := utils.Max(b.buffer.Cap(), 256) + for newCap < b.pos+nbytes { + newCap = bitutil.NextPowerOf2(b.pos + nbytes) } b.buffer.Reserve(newCap) }