diff --git a/jv_alloc.c b/jv_alloc.c index 3e1c8fe7..320f16e1 100644 --- a/jv_alloc.c +++ b/jv_alloc.c @@ -1,9 +1,18 @@ #include +#include #include "jv_alloc.h" +static void memory_exhausted() { + fprintf(stderr, "error: cannot allocate memory\n"); + abort(); +} void* jv_mem_alloc(size_t sz) { - return malloc(sz); + void* p = malloc(sz); + if (!p) { + memory_exhausted(); + } + return p; } void jv_mem_free(void* p) { @@ -11,5 +20,9 @@ void jv_mem_free(void* p) { } void* jv_mem_realloc(void* p, size_t sz) { - return realloc(p, sz); + p = realloc(p, sz); + if (!p) { + memory_exhausted(); + } + return p; }