diff --git a/src/allocator.c b/src/allocator.c index 6d1c6864a7a2c1f1b30aaf1986314e0b7118b338..b4dd94f3401b5aa3ab329935f4971a5dc2ee4c4d 100644 --- a/src/allocator.c +++ b/src/allocator.c @@ -65,6 +65,13 @@ void* h_alloc(HAllocator* mm__, size_t size) { return p; } +void* h_realloc(HAllocator* mm__, void* ptr, size_t size) { + void *p = mm__->realloc(mm__, ptr, size); + if(!p) + h_platform_errx(1, "memory reallocation failed (%zuB requested)\n", size); + return p; +} + HArena *h_new_arena(HAllocator* mm__, size_t block_size) { if (block_size == 0) block_size = 4096; diff --git a/src/allocator.h b/src/allocator.h index 8ebde72308997aa5ac56885d1fa5d45078659170..f98ec899bb872acb105e7b16120f448d34c2d8ca 100644 --- a/src/allocator.h +++ b/src/allocator.h @@ -48,6 +48,7 @@ typedef struct HAllocator_ { } HAllocator; void* h_alloc(HAllocator* allocator, size_t size) ATTR_MALLOC(2); +void* h_realloc(HAllocator* allocator, void* ptr, size_t size); typedef struct HArena_ HArena ; // hidden implementation