From 1f1434b384195c28d21b1f94682a4dc5d2d87b28 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 5 Oct 2021 16:42:42 +0100 Subject: [PATCH] Add arena_util.odin --- core/mem/virtual/arena_util.odin | 36 +++++++++++++++++++++++++++++ core/mem/virtual/growing_arena.odin | 4 ++++ 2 files changed, 40 insertions(+) create mode 100644 core/mem/virtual/arena_util.odin diff --git a/core/mem/virtual/arena_util.odin b/core/mem/virtual/arena_util.odin new file mode 100644 index 000000000..408566299 --- /dev/null +++ b/core/mem/virtual/arena_util.odin @@ -0,0 +1,36 @@ +package mem_virtual + +arena_temp_begin :: proc{ + static_arena_temp_begin, + growing_arena_temp_begin, +} + +arena_temp_end :: proc{ + static_arena_temp_end, + growing_arena_temp_end, +} + +arena_check_temp :: proc{ + static_arena_check_temp, + growing_arena_check_temp, +} + +arena_allocator :: proc{ + static_arena_allocator, + growing_arena_allocator, +} + +arena_alloc :: proc{ + static_arena_alloc, + growing_arena_alloc, +} + +arena_free_all :: proc{ + static_arena_free_all, + growing_arena_free_all, +} + +arena_destroy :: proc{ + static_arena_destroy, + growing_arena_destroy, +} \ No newline at end of file diff --git a/core/mem/virtual/growing_arena.odin b/core/mem/virtual/growing_arena.odin index 596a7ad51..9a4272a1e 100644 --- a/core/mem/virtual/growing_arena.odin +++ b/core/mem/virtual/growing_arena.odin @@ -65,6 +65,10 @@ growing_arena_free_all :: proc(arena: ^Growing_Arena) { arena.total_reserved = 0 } +growing_arena_destroy :: proc(arena: ^Growing_Arena) { + growing_arena_free_all(arena) +} + growing_arena_bootstrap_new_by_offset :: proc($T: typeid, offset_to_arena: uintptr, minimum_block_size := DEFAULT_MINIMUM_BLOCK_SIZE) -> (ptr: ^T, err: Allocator_Error) { bootstrap: Growing_Arena bootstrap.minimum_block_size = minimum_block_size