8 #include <botan/internal/gnump_engine.h>
19 Allocator* gmp_alloc = 0;
20 size_t gmp_alloc_refcnt = 0;
25 void* gmp_malloc(
size_t n)
27 return gmp_alloc->allocate(n);
33 void* gmp_realloc(
void* ptr,
size_t old_n,
size_t new_n)
35 void* new_buf = gmp_alloc->allocate(new_n);
36 std::memcpy(new_buf, ptr, std::min(old_n, new_n));
37 gmp_alloc->deallocate(ptr, old_n);
44 void gmp_free(
void* ptr,
size_t n)
46 gmp_alloc->deallocate(ptr, n);
59 mp_set_memory_functions(gmp_malloc, gmp_realloc, gmp_free);
69 if(gmp_alloc_refcnt == 0)
71 mp_set_memory_functions(NULL, NULL, NULL);
static Allocator * get(bool locking)