diff options
Diffstat (limited to 'vendor/github.com/bytedance/sonic/internal/rt/pool.go')
| -rw-r--r-- | vendor/github.com/bytedance/sonic/internal/rt/pool.go | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/vendor/github.com/bytedance/sonic/internal/rt/pool.go b/vendor/github.com/bytedance/sonic/internal/rt/pool.go deleted file mode 100644 index 60545b1ff..000000000 --- a/vendor/github.com/bytedance/sonic/internal/rt/pool.go +++ /dev/null @@ -1,31 +0,0 @@ -package rt - -import ( - "unsafe" -) - -type SlicePool struct { - pool unsafe.Pointer - len int - index int - typ uintptr -} - -func NewPool(typ *GoType, size int) SlicePool { - return SlicePool{pool: newarray(typ, size), len: size, typ: uintptr(unsafe.Pointer(typ))} -} - -func (self *SlicePool) GetSlice(size int) unsafe.Pointer { - // pool is full, fallback to normal alloc - if size > self.Remain() { - return newarray(AsGoType(self.typ), size) - } - - ptr := PtrAdd(self.pool, uintptr(self.index)* AsGoType(self.typ).Size) - self.index += size - return ptr -} - -func (self *SlicePool) Remain() int { - return self.len - self.index -} |
