diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2025-07-23 19:39:13 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2025-07-23 19:39:26 +0200 |
| commit | 421300c27123ca647772dc6d9bd0cabf7f5f9c99 (patch) | |
| tree | d916b62056b2440aef374b21373d16272bb709ee /memory.c | |
| parent | 53e9e371a16ae2d167f1fc2577dff2c2426eed68 (diff) | |
refactor: src & pragma once
Diffstat (limited to 'memory.c')
| -rw-r--r-- | memory.c | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/memory.c b/memory.c deleted file mode 100644 index f60f044..0000000 --- a/memory.c +++ /dev/null @@ -1,30 +0,0 @@ -#include <assert.h> -#include <stdint.h> -#include <stdlib.h> -#include <string.h> - -#include "memory.h" -#include "types.h" - -Arena Arena_new(size cap) { - Arena a = {0}; - a.cap = cap; - a.beg = malloc(cap); - a.end = a.beg ? a.beg + cap : 0; - return a; -} - -// Magic to allow optimisation __attribute((malloc, alloc_size(2, 4), -// alloc_align(3))) -void *alloc(Arena *a, size count, size tsize, size align) { - size padding = -(uptr)a->beg & (align - 1); - byte *beg = a->beg + padding; - size alloc_size = count * tsize; - assert(beg + alloc_size < a->end); - a->beg = beg + alloc_size; - return memset(beg, 0, count * tsize); -} - -void Arena_reset(Arena *a) { a->beg = a->end - a->cap; } - -size Arena_get_used(Arena a) { return a.cap - (a.end - a.beg); } |
