From 74c094eeb77e7a25501603ef668333245f726662 Mon Sep 17 00:00:00 2001 From: WormHeamer Date: Sun, 28 Dec 2025 23:56:25 -0500 Subject: fix arena_realloc() zeroing memory --- arena.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'arena.h') diff --git a/arena.h b/arena.h index 58c9d38..8e8b145 100644 --- a/arena.h +++ b/arena.h @@ -5,6 +5,7 @@ #include #include +#include typedef struct { char *start; /* need to release memory */ @@ -24,10 +25,10 @@ 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); #define new(a, t)\ - arena_alloc(a, sizeof(t), _Alignof(__typeof__(t))) + memset(arena_alloc(a, sizeof(t), _Alignof(__typeof__(t))), 0, sizeof(t)) #define new_arr(a, t, n)\ - arena_alloc(a, sizeof(t) * (n), _Alignof(__typeof__(t))) + memset(arena_alloc(a, sizeof(t) * (n), _Alignof(__typeof__(t))), 0, sizeof(t) * (n)) #define resize(a, x, osz, nsz)\ arena_realloc(a, x, sizeof(*(x)) * (osz),\ @@ -67,7 +68,6 @@ void *arena_alloc(Arena *a, size_t sz, size_t align) { char *p = a->beg + (-(uintptr_t)a->beg & (align - 1)); if (p >= a->end) FAIL_WITH_MSG("arena out-of-memory"); a->beg = p + sz; - memset(p, 0, sz); return p; } -- cgit v1.2.3