diff options
Diffstat (limited to 'lib/alloc/alloc_heap.c')
-rw-r--r-- | lib/alloc/alloc_heap.c | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/lib/alloc/alloc_heap.c b/lib/alloc/alloc_heap.c deleted file mode 100644 index fccfcfc..0000000 --- a/lib/alloc/alloc_heap.c +++ /dev/null @@ -1,31 +0,0 @@ -#include <errno.h> -#include <setjmp.h> -#include <stdckdint.h> -#include <stddef.h> -#include <stdlib.h> - -#include "alloc.h" -#include "errors.h" - -void * -alloc_heap(void *raw_ctx, void *ptr, size_t, size_t new, size_t elemsz, size_t) -{ - if (new == 0) { - free(ptr); - return nullptr; - } - - if (!ckd_mul(&new, new, elemsz)) { - void *p = realloc(ptr, new); - if (p != nullptr) - return p; - } else - errno = EOVERFLOW; - - struct heap_ctx *ctx = raw_ctx; - if (ctx == nullptr || ctx->jmp == nullptr) - err("realloc:"); - - longjmp(*ctx->jmp, 1); - unreachable(); -} |