diff options
Diffstat (limited to 'src/util/memory.c')
| -rw-r--r-- | src/util/memory.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/util/memory.c b/src/util/memory.c index 439385c..d18c01f 100644 --- a/src/util/memory.c +++ b/src/util/memory.c @@ -5,6 +5,9 @@ #include "memory.h" #include <pari/pari.h> +#define ECGEN_PARI_MEM +#ifdef ECGEN_PARI_MEM + static void *(*malloc_func)(size_t) = pari_malloc; static void *(*calloc_func)(size_t) = pari_calloc; @@ -13,6 +16,20 @@ static void *(*realloc_func)(void *, size_t) = pari_realloc; static void (*free_func)(void *) = pari_free; +#else + +static void *(*malloc_func)(size_t) = malloc; + +void *calloc_wrapper(size_t n) { return calloc(1, n); } + +static void *(*calloc_func)(size_t) = calloc_wrapper; + +static void *(*realloc_func)(void *, size_t) = realloc; + +static void (*free_func)(void *) = free; + +#endif + void *alloc(void *(*fun)(size_t), size_t size) { void *result = fun(size); if (!result) { |
