From 43b04a1bfaecfabe8b3460575db7be5d592f896b Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Tue, 16 Apr 2024 02:03:12 +0200 Subject: implement arena allocators --- lib/alloc/arena_free.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 lib/alloc/arena_free.c (limited to 'lib/alloc/arena_free.c') diff --git a/lib/alloc/arena_free.c b/lib/alloc/arena_free.c new file mode 100644 index 0000000..dc2b45e --- /dev/null +++ b/lib/alloc/arena_free.c @@ -0,0 +1,20 @@ +#include + +#include + +#include "alloc.h" +#include "macros.h" + +void +arena_free(arena *a) +{ + ASSUME(a != nullptr); + + struct _region *cur, *next; + for (cur = a->_head; cur != nullptr; cur = next) { + next = cur->next; + munmap(cur->data, cur->cap); + free(cur); + } + a->_head = nullptr; +} -- cgit v1.2.3