From c7855724677a104d267c0916cce39dc00902e33e Mon Sep 17 00:00:00 2001 From: Christoffer Lerno Date: Thu, 13 Feb 2025 03:10:46 +0100 Subject: [PATCH] Add allocator::wrap. --- lib/std/core/allocators/arena_allocator.c3 | 5 +++++ releasenotes.md | 1 + 2 files changed, 6 insertions(+) diff --git a/lib/std/core/allocators/arena_allocator.c3 b/lib/std/core/allocators/arena_allocator.c3 index 96baa975a..f988a6635 100644 --- a/lib/std/core/allocators/arena_allocator.c3 +++ b/lib/std/core/allocators/arena_allocator.c3 @@ -31,6 +31,11 @@ struct ArenaAllocatorHeader @local char[?] data; } +macro ArenaAllocator* wrap(char[] bytes) +{ + return ArenaAllocator{}.init(bytes); +} + <* @require ptr != null *> diff --git a/releasenotes.md b/releasenotes.md index 555e0a563..9f06beeea 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -77,6 +77,7 @@ - Added weakly linked `fmodf`. - Add `@select` to perform the equivalent of `a ? x : y` at compile time. - `HashMap` is now `Printable`. +- Add `allocator::wrap` to create an arena allocator on the stack from bytes. ## 0.6.6 Change list