aboutsummaryrefslogtreecommitdiff
path: root/src/util/memory.c
diff options
context:
space:
mode:
authorJ08nY2018-04-10 02:15:08 +0200
committerJ08nY2018-04-10 02:15:08 +0200
commit12f80f26882b49c2cb9503939db07735e1ba0c60 (patch)
treef67caf673e7a1b18c130d04d0ee926d5029d384f /src/util/memory.c
parent0eaa0d614b081b1a2b87dfefe64f8d1723acf6ad (diff)
parentdb440c3d3af3e9dff252501c3459cbafa2d2d047 (diff)
downloadecgen-12f80f26882b49c2cb9503939db07735e1ba0c60.tar.gz
ecgen-12f80f26882b49c2cb9503939db07735e1ba0c60.tar.zst
ecgen-12f80f26882b49c2cb9503939db07735e1ba0c60.zip
Diffstat (limited to 'src/util/memory.c')
-rw-r--r--src/util/memory.c17
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) {