]> www.ginac.de Git - cln.git/blob - src/base/cl_malloc.cc
- Compatibility was not really broken, so: C=0, R=1, A=0.
[cln.git] / src / base / cl_malloc.cc
1 // cl_malloc_hook, cl_free_hook.
2
3 // General includes.
4 #include "cl_sysdep.h"
5
6 // Specification.
7 #include "cl_malloc.h"
8
9
10 // Implementation.
11
12 #include <stdlib.h>
13 #include "cl_io.h"
14 #include "cl_abort.h"
15
16 #ifndef malloc
17   extern "C" void* malloc (size_t size);
18 #endif
19 #ifndef free
20   extern "C" void free (void* ptr);
21 #endif
22
23 // Just like malloc() but never return NULL pointers.
24 static void* xmalloc (size_t size)
25 {
26         void* ptr = malloc(size);
27         if (ptr)
28                 return ptr;
29         fprint(cl_stderr, "Out of virtual memory.\n");
30         cl_abort();
31 }
32
33 void* (*cl_malloc_hook) (size_t size) = xmalloc;
34 void (*cl_free_hook) (void* ptr)      = free;
35