From 7039b5437ac9729d5ddb1106a239f6ce30b36fab Mon Sep 17 00:00:00 2001 From: Abdelrahman Said Date: Sun, 24 Mar 2024 19:24:36 +0000 Subject: [PATCH] Implement memory context realloc function --- mem/include/ctx/mem_ctx.h | 3 +++ mem/src/ctx/mem_ctx.c | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/mem/include/ctx/mem_ctx.h b/mem/include/ctx/mem_ctx.h index e9cd343..3d9e94d 100644 --- a/mem/include/ctx/mem_ctx.h +++ b/mem/include/ctx/mem_ctx.h @@ -17,6 +17,9 @@ typedef enum { void wapp_mem_ctx_init(u64 main_buf_capacity, u64 temp_buf_capacity); void *wapp_mem_ctx_alloc(CTXDestBuffer buffer, u64 size); void *wapp_mem_ctx_alloc_aligned(CTXDestBuffer buffer, u64 size, u64 alignment); +void *wapp_mem_ctx_realloc(CTXDestBuffer buffer, void *ptr, u64 size); +void *wapp_mem_ctx_realloc_aligned(CTXDestBuffer buffer, void *ptr, u64 size, + u64 alignment); void wapp_mem_ctx_clear(CTXDestBuffer buffer); void wapp_mem_ctx_free(void); diff --git a/mem/src/ctx/mem_ctx.c b/mem/src/ctx/mem_ctx.c index b27d029..2791755 100644 --- a/mem/src/ctx/mem_ctx.c +++ b/mem/src/ctx/mem_ctx.c @@ -42,6 +42,25 @@ void *wapp_mem_ctx_alloc_aligned(CTXDestBuffer buffer, u64 size, return wapp_mem_arena_alloc_aligned(arena, size, alignment); } +void *wapp_mem_ctx_realloc(CTXDestBuffer buffer, void *ptr, u64 size) { + Arena *arena = get_arena(buffer); + if (!arena) { + return NULL; + } + + return wapp_mem_arena_realloc(arena, ptr, size); +} + +void *wapp_mem_ctx_realloc_aligned(CTXDestBuffer buffer, void *ptr, u64 size, + u64 alignment) { + Arena *arena = get_arena(buffer); + if (!arena) { + return NULL; + } + + return wapp_mem_arena_realloc_aligned(arena, ptr, size, alignment); +} + void wapp_mem_ctx_clear(CTXDestBuffer buffer) { Arena *arena = get_arena(buffer); if (!arena) {