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) {