diff --git a/arena/arena.go b/arena/arena.go index 3bcc728..a842390 100644 --- a/arena/arena.go +++ b/arena/arena.go @@ -29,6 +29,10 @@ func MakeSlice[T any](arena Arena, len, cap int) []T { panic(err) } + if len == -1 { + len = cap + } + return unsafe.Slice((*T)(ptr), cap)[:len] } diff --git a/arena/arenas.go b/arena/arenas.go index 2bc362f..e82fca6 100644 --- a/arena/arenas.go +++ b/arena/arenas.go @@ -211,7 +211,7 @@ func Paged(page_size, total_reserved_in_bytes uintptr) Arena { required := offset + aligned to_commit := mem.AlignForward(required, page_size) - if err := mem.Commit(base[committed:to_commit-committed], mem.AccessRead|mem.AccessWrite); err != nil { + if err := mem.Commit(base[committed:to_commit], mem.AccessRead|mem.AccessWrite); err != nil { return nil, fmt.Errorf("paged: failed to commit memory - %w", err) }