| 45 // predefined allocator that uses stdlib functions |
45 // predefined allocator that uses stdlib functions |
| 46 CxAllocator * const cxStdlibAllocator; |
46 CxAllocator * const cxStdlibAllocator; |
| 47 |
47 |
| 48 // default allocator that can be changed |
48 // default allocator that can be changed |
| 49 CxAllocator *cxDefaultAllocator = cxStdlibAllocator; |
49 CxAllocator *cxDefaultAllocator = cxStdlibAllocator; |
| |
50 |
| |
51 // Convenience macros that invokes above functions with the cxDefaultAllocator. |
| |
52 #define cxMallocDefault(...) |
| |
53 #define cxCallocDefault(...) |
| |
54 #define cxReallocDefault(...) |
| |
55 #define cxReallocateDefault(...) |
| |
56 #define cxReallocateArrayDefault(...) |
| |
57 #define cxReallocArrayDefault(...) |
| |
58 #define cxFreeDefault(...) |
| 50 ``` |
59 ``` |
| 51 |
60 |
| 52 > All UCX functions that are not _explicitly_ designed for taking an allocator argument |
61 > All UCX functions that are not _explicitly_ designed for taking an allocator argument |
| 53 > (recognizable by a `_a` suffix in the function's name) do support a `NULL` argument |
62 > (recognizable by a `_a` suffix in the function's name) do support a `NULL` argument |
| 54 > in which case the `cxDefaultAllocator` will be used. |
63 > in which case the `cxDefaultAllocator` will be used. |