diff options
Diffstat (limited to 'prb_arena.c')
-rw-r--r-- | prb_arena.c | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/prb_arena.c b/prb_arena.c deleted file mode 100644 index 1938dec..0000000 --- a/prb_arena.c +++ /dev/null @@ -1,48 +0,0 @@ -Arena *alloc_arena(U64 cap) -{ - Arena *a; - - /* TODO(pryazha): Use OS specific memory allocator - * (like VirtualAlloc on Windows or mmap on Linux) - */ - a = malloc(sizeof(Arena)); - ASSERT(a); - - if (!cap) - cap = PRB_DEFAULT_ALLOC_SIZE; - - a->mem = malloc(cap); - ASSERT(a->mem); - a->cap = cap; - a->used = 0; - - return a; -} - -void release_arena(Arena *a) -{ - free(a->mem); - MEM0STRUCT(a); - free(a); -} - -void *push_arena(Arena *a, U64 size) -{ - ASSERT(a); - ASSERT(a->used+size <= a->cap); - - void *r; - - r = a->mem+a->used; - a->used += size; - - return r; -} - -void pop_arena(Arena *a, U64 size) -{ - ASSERT(a); - U64 clamped; - clamped = CLAMPTOP(size, a->used); - a->used = a->used-clamped; -} |