Update signature of realloc functions to expect old and new sizes

This commit is contained in:
Abdelrahman Said 2024-09-14 13:38:55 +01:00
parent 8f794dee15
commit 46f32f2ba9
2 changed files with 12 additions and 17 deletions

View File

@ -15,8 +15,7 @@ void *wapp_mem_allocator_alloc(const Allocator *allocator, u64 size) {
return allocator->alloc(size, allocator->obj); return allocator->alloc(size, allocator->obj);
} }
void *wapp_mem_allocator_alloc_aligned(const Allocator *allocator, u64 size, void *wapp_mem_allocator_alloc_aligned(const Allocator *allocator, u64 size, u64 alignment) {
u64 alignment) {
if (!allocator || !(allocator->alloc_aligned)) { if (!allocator || !(allocator->alloc_aligned)) {
return NULL; return NULL;
} }
@ -24,22 +23,21 @@ void *wapp_mem_allocator_alloc_aligned(const Allocator *allocator, u64 size,
return allocator->alloc_aligned(size, alignment, allocator->obj); return allocator->alloc_aligned(size, alignment, allocator->obj);
} }
void *wapp_mem_allocator_realloc(const Allocator *allocator, void *ptr, void *wapp_mem_allocator_realloc(const Allocator *allocator, void *ptr, u64 old_size, u64 new_size) {
u64 size) {
if (!allocator || !(allocator->realloc)) { if (!allocator || !(allocator->realloc)) {
return NULL; return NULL;
} }
return allocator->realloc(ptr, size, allocator->obj); return allocator->realloc(ptr, old_size, new_size, allocator->obj);
} }
void *wapp_mem_allocator_realloc_aligned(const Allocator *allocator, void *ptr, void *wapp_mem_allocator_realloc_aligned(const Allocator *allocator, void *ptr, u64 old_size,
u64 size, u64 alignment) { u64 new_size, u64 alignment) {
if (!allocator || !(allocator->realloc_aligned)) { if (!allocator || !(allocator->realloc_aligned)) {
return NULL; return NULL;
} }
return allocator->realloc_aligned(ptr, size, alignment, allocator->obj); return allocator->realloc_aligned(ptr, old_size, new_size, alignment, allocator->obj);
} }
void wapp_mem_allocator_free(const Allocator *allocator, void **ptr) { void wapp_mem_allocator_free(const Allocator *allocator, void **ptr) {

View File

@ -15,9 +15,8 @@ extern "C" {
typedef void *(MemAllocFunc)(u64 size, void *alloc_obj); typedef void *(MemAllocFunc)(u64 size, void *alloc_obj);
typedef void *(MemAllocAlignedFunc)(u64 size, u64 alignment, void *alloc_obj); typedef void *(MemAllocAlignedFunc)(u64 size, u64 alignment, void *alloc_obj);
typedef void *(MemReallocFunc)(void *ptr, u64 size, void *alloc_obj); typedef void *(MemReallocFunc)(void *ptr, u64 old_size, u64 new_size, void *alloc_obj);
typedef void *(MemReallocAlignedFunc)(void *ptr, u64 size, u64 alignment, typedef void *(MemReallocAlignedFunc)(void *ptr, u64 old_size, u64 new_size, u64 alignment, void *alloc_obj);
void *alloc_obj);
typedef void(MemFreeFunc)(void **ptr, void *alloc_obj); typedef void(MemFreeFunc)(void **ptr, void *alloc_obj);
/***************************************************************************/ // /***************************************************************************/ //
@ -43,12 +42,10 @@ struct allocator {
/***************************************************************************/ // /***************************************************************************/ //
void *wapp_mem_allocator_alloc(const Allocator *allocator, u64 size); void *wapp_mem_allocator_alloc(const Allocator *allocator, u64 size);
void *wapp_mem_allocator_alloc_aligned(const Allocator *allocator, u64 size, void *wapp_mem_allocator_alloc_aligned(const Allocator *allocator, u64 size, u64 alignment);
u64 alignment); void *wapp_mem_allocator_realloc(const Allocator *allocator, void *ptr, u64 old_size, u64 new_size);
void *wapp_mem_allocator_realloc(const Allocator *allocator, void *ptr, void *wapp_mem_allocator_realloc_aligned(const Allocator *allocator, void *ptr, u64 old_size,
u64 size); u64 new_size, u64 alignment);
void *wapp_mem_allocator_realloc_aligned(const Allocator *allocator, void *ptr,
u64 size, u64 alignment);
void wapp_mem_allocator_free(const Allocator *allocator, void **ptr); void wapp_mem_allocator_free(const Allocator *allocator, void **ptr);
#ifdef __cplusplus #ifdef __cplusplus