diff options
Diffstat (limited to 'vendor/github.com/ncruces/go-sqlite3/internal/alloc')
3 files changed, 0 insertions, 165 deletions
diff --git a/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_other.go b/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_other.go deleted file mode 100644 index b420acc45..000000000 --- a/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_other.go +++ /dev/null @@ -1,24 +0,0 @@ -//go:build !unix && !windows - -package alloc - -import "github.com/tetratelabs/wazero/experimental" - -func NewMemory(cap, max uint64) experimental.LinearMemory { - return &sliceMemory{make([]byte, 0, cap)} -} - -type sliceMemory struct { - buf []byte -} - -func (b *sliceMemory) Free() {} - -func (b *sliceMemory) Reallocate(size uint64) []byte { - if cap := uint64(cap(b.buf)); size > cap { - b.buf = append(b.buf[:cap], make([]byte, size-cap)...) - } else { - b.buf = b.buf[:size] - } - return b.buf -} diff --git a/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_unix.go b/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_unix.go deleted file mode 100644 index a00dbbf24..000000000 --- a/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_unix.go +++ /dev/null @@ -1,67 +0,0 @@ -//go:build unix - -package alloc - -import ( - "math" - - "github.com/tetratelabs/wazero/experimental" - "golang.org/x/sys/unix" -) - -func NewMemory(_, max uint64) experimental.LinearMemory { - // Round up to the page size. - rnd := uint64(unix.Getpagesize() - 1) - max = (max + rnd) &^ rnd - - if max > math.MaxInt { - // This ensures int(max) overflows to a negative value, - // and unix.Mmap returns EINVAL. - max = math.MaxUint64 - } - - // Reserve max bytes of address space, to ensure we won't need to move it. - // A protected, private, anonymous mapping should not commit memory. - b, err := unix.Mmap(-1, 0, int(max), unix.PROT_NONE, unix.MAP_PRIVATE|unix.MAP_ANON) - if err != nil { - panic(err) - } - return &mmappedMemory{buf: b[:0]} -} - -// The slice covers the entire mmapped memory: -// - len(buf) is the already committed memory, -// - cap(buf) is the reserved address space. -type mmappedMemory struct { - buf []byte -} - -func (m *mmappedMemory) Reallocate(size uint64) []byte { - com := uint64(len(m.buf)) - res := uint64(cap(m.buf)) - if com < size && size <= res { - // Round up to the page size. - rnd := uint64(unix.Getpagesize() - 1) - new := (size + rnd) &^ rnd - - // Commit additional memory up to new bytes. - err := unix.Mprotect(m.buf[com:new], unix.PROT_READ|unix.PROT_WRITE) - if err != nil { - return nil - } - - // Update committed memory. - m.buf = m.buf[:new] - } - // Limit returned capacity because bytes beyond - // len(m.buf) have not yet been committed. - return m.buf[:size:len(m.buf)] -} - -func (m *mmappedMemory) Free() { - err := unix.Munmap(m.buf[:cap(m.buf)]) - if err != nil { - panic(err) - } - m.buf = nil -} diff --git a/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_windows.go b/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_windows.go deleted file mode 100644 index 6bfc73a0c..000000000 --- a/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_windows.go +++ /dev/null @@ -1,74 +0,0 @@ -package alloc - -import ( - "math" - "reflect" - "unsafe" - - "github.com/tetratelabs/wazero/experimental" - "golang.org/x/sys/windows" -) - -func NewMemory(_, max uint64) experimental.LinearMemory { - // Round up to the page size. - rnd := uint64(windows.Getpagesize() - 1) - max = (max + rnd) &^ rnd - - if max > math.MaxInt { - // This ensures uintptr(max) overflows to a large value, - // and windows.VirtualAlloc returns an error. - max = math.MaxUint64 - } - - // Reserve max bytes of address space, to ensure we won't need to move it. - // This does not commit memory. - r, err := windows.VirtualAlloc(0, uintptr(max), windows.MEM_RESERVE, windows.PAGE_READWRITE) - if err != nil { - panic(err) - } - - mem := virtualMemory{addr: r} - // SliceHeader, although deprecated, avoids a go vet warning. - sh := (*reflect.SliceHeader)(unsafe.Pointer(&mem.buf)) - sh.Cap = int(max) - sh.Data = r - return &mem -} - -// The slice covers the entire mmapped memory: -// - len(buf) is the already committed memory, -// - cap(buf) is the reserved address space. -type virtualMemory struct { - buf []byte - addr uintptr -} - -func (m *virtualMemory) Reallocate(size uint64) []byte { - com := uint64(len(m.buf)) - res := uint64(cap(m.buf)) - if com < size && size <= res { - // Round up to the page size. - rnd := uint64(windows.Getpagesize() - 1) - new := (size + rnd) &^ rnd - - // Commit additional memory up to new bytes. - _, err := windows.VirtualAlloc(m.addr, uintptr(new), windows.MEM_COMMIT, windows.PAGE_READWRITE) - if err != nil { - return nil - } - - // Update committed memory. - m.buf = m.buf[:new] - } - // Limit returned capacity because bytes beyond - // len(m.buf) have not yet been committed. - return m.buf[:size:len(m.buf)] -} - -func (m *virtualMemory) Free() { - err := windows.VirtualFree(m.addr, 0, windows.MEM_RELEASE) - if err != nil { - panic(err) - } - m.addr = 0 -} |