Switch to using wapp_mem_util_alloc instead of calloc

This commit is contained in:
Abdelrahman Said 2024-06-02 20:42:10 +01:00
parent 57de75c1f8
commit 23886f40e8
2 changed files with 10 additions and 4 deletions

View File

@ -21,7 +21,8 @@ struct arena {
// PUBLIC API // PUBLIC API
bool wapp_mem_arena_init(Arena **arena, u64 base_capacity) { bool wapp_mem_arena_init(Arena **arena, u64 base_capacity, MemAllocFlags flags,
bool zero_buffer) {
if (!arena || *arena || base_capacity == 0) { if (!arena || *arena || base_capacity == 0) {
return false; return false;
} }
@ -36,7 +37,10 @@ bool wapp_mem_arena_init(Arena **arena, u64 base_capacity) {
? base_capacity ? base_capacity
: ARENA_MINIMUM_CAPACITY; : ARENA_MINIMUM_CAPACITY;
arena_ptr->buf = (u8 *)calloc(arena_capacity, sizeof(u8)); arena_ptr->buf = (u8 *)wapp_mem_util_alloc(
arena_capacity, WAPP_MEM_ACCESS_READ_WRITE, flags,
zero_buffer ? WAPP_MEM_INIT_INITIALISED : WAPP_MEM_INIT_UNINITIALISED);
if (!(arena_ptr->buf)) { if (!(arena_ptr->buf)) {
wapp_mem_arena_destroy(arena); wapp_mem_arena_destroy(arena);
return false; return false;
@ -87,7 +91,7 @@ void wapp_mem_arena_destroy(Arena **arena) {
Arena *arena_ptr = *arena; Arena *arena_ptr = *arena;
if (arena_ptr->buf) { if (arena_ptr->buf) {
free(arena_ptr->buf); wapp_mem_util_free(arena_ptr->buf, arena_ptr->capacity);
} }
arena_ptr->buf = arena_ptr->offset = NULL; arena_ptr->buf = arena_ptr->offset = NULL;

View File

@ -2,6 +2,7 @@
#define MEM_ARENA_H #define MEM_ARENA_H
#include "aliases.h" #include "aliases.h"
#include "mem_utils.h"
#include <stdbool.h> #include <stdbool.h>
#ifdef __cplusplus #ifdef __cplusplus
@ -10,7 +11,8 @@ extern "C" {
typedef struct arena Arena; typedef struct arena Arena;
bool wapp_mem_arena_init(Arena **arena, u64 base_capacity); bool wapp_mem_arena_init(Arena **arena, u64 base_capacity, MemAllocFlags flags,
bool zero_buffer);
void *wapp_mem_arena_alloc(Arena *arena, u64 size); void *wapp_mem_arena_alloc(Arena *arena, u64 size);
void *wapp_mem_arena_alloc_aligned(Arena *arena, u64 size, u64 alignment); void *wapp_mem_arena_alloc_aligned(Arena *arena, u64 size, u64 alignment);
void wapp_mem_arena_clear(Arena *arena); void wapp_mem_arena_clear(Arena *arena);