diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2025-07-21 16:53:37 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2025-07-21 16:53:37 +0200 |
| commit | 85b0db24804e6a8a66f557ac8917596db5fc5d9f (patch) | |
| tree | 22cdfbf325fe7ecadc744a668f28c46b03e0f008 /memory.c | |
| parent | 2d225abf3b482fa2bf8cf9a56b8caefcc5724447 (diff) | |
refactor: Better types
Diffstat (limited to 'memory.c')
| -rw-r--r-- | memory.c | 13 |
1 files changed, 7 insertions, 6 deletions
@@ -4,8 +4,9 @@ #include <string.h> #include "memory.h" +#include "types.h" -Arena Arena_new(ptrdiff_t cap) { +Arena Arena_new(size cap) { Arena a = {0}; a.cap = cap; a.beg = malloc(cap); @@ -15,12 +16,12 @@ Arena Arena_new(ptrdiff_t cap) { // Magic to allow optimisation __attribute((malloc, alloc_size(2, 4), // alloc_align(3))) -void *alloc(Arena *a, ptrdiff_t count, int size, int align) { - int padding = -(uintptr_t)a->beg & (align - 1); - assert(count < (a->end - a->beg - padding) / size); +void *alloc(Arena *a, size count, size tsize, int align) { + int padding = -(uptr)a->beg & (align - 1); + assert(count < (a->end - a->beg - padding) / tsize); void *cursor = a->beg + padding; - a->beg += padding + count * size; - return memset(cursor, 0, count * size); + a->beg += padding + count * tsize; + return memset(cursor, 0, count * tsize); } int Arena_get_used(Arena a) { return a.cap - (a.end - a.beg); } |
