diff --git a/rtcore.h b/rtcore.h index 36705ad..5114914 100644 --- a/rtcore.h +++ b/rtcore.h @@ -293,7 +293,7 @@ RTC_API void * ArenaAlloc(arena *a, isize size, isize align, isize n, int flags) { isize padding = -(usize)a->begin & (align - 1); - isize available = a->end - a->begin - padding; + isize available = (isize)(a->end - a->begin) - padding; if (available < 0 || n > available / size) { if (!(flags & ALLOC_SOFTFAIL)) @@ -301,7 +301,7 @@ ArenaAlloc(arena *a, isize size, isize align, isize n, int flags) return NULL; } void *p = a->begin + padding; - a->begin += padding - n * size; + a->begin += padding + n * size; return (flags & ALLOC_NOZERO) ? p : memset(p, 0, n * size); }