summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWormHeamer2026-01-02 19:52:20 -0500
committerWormHeamer2026-01-02 19:52:20 -0500
commitecdb6e57fcf3b0d4145eac498073bb181f792b6e (patch)
tree3af31c353c1f044780c452c61d2bf61023f7f679
parent6d60c710747cbee755b9f50d88ee7c71096a289f (diff)
const params for arena allocation funcs
-rw-r--r--arena.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/arena.h b/arena.h
index 5235204..e963752 100644
--- a/arena.h
+++ b/arena.h
@@ -23,8 +23,8 @@ Arena arena_init(size_t sz);
void arena_free(Arena *a);
void arena_reset(Arena *a);
void *arena_alloc(Arena *a, size_t n, size_t align);
-void *arena_realloc(Arena *a, void *old, size_t oldsz, size_t newsz, size_t align);
-void *arena_concat(Arena *m, void *a, size_t asz, void *b, size_t bsz, size_t align);
+void *arena_realloc(Arena *a, const void *old, size_t oldsz, size_t newsz, size_t align);
+void *arena_concat(Arena *m, const void *a, size_t asz, const void *b, size_t bsz, size_t align);
#define new(a, t)\
memset(arena_alloc(a, sizeof(t), _Alignof(__typeof__(t))), 0, sizeof(t))
@@ -79,10 +79,10 @@ void *arena_alloc(Arena *a, size_t sz, size_t align) {
return p;
}
-void *arena_realloc(Arena *a, void *old, size_t oldsz, size_t newsz, size_t align) {
+void *arena_realloc(Arena *a, const void *old, size_t oldsz, size_t newsz, size_t align) {
if (old == a->beg - oldsz) {
a->beg = (char*)old + newsz;
- return old;
+ return (void*)old;
} else {
void *p = arena_alloc(a, newsz, align);
if (old) memcpy(p, old, oldsz);
@@ -90,11 +90,11 @@ void *arena_realloc(Arena *a, void *old, size_t oldsz, size_t newsz, size_t alig
}
}
-void *arena_concat(Arena *m, void *a, size_t asz, void *b, size_t bsz, size_t align) {
+void *arena_concat(Arena *m, const void *a, size_t asz, const void *b, size_t bsz, size_t align) {
if (!asz)
- return b;
+ return (void*)b;
if (!bsz || (char*)a + asz == b)
- return a;
+ return (void*)a;
void *p = arena_realloc(m, a, asz, asz + bsz, align);
memcpy((char*)p + asz, b, bsz);
return p;