src/allocator.c

changeset 397
cfc1193b1e65
parent 396
3539dd99ab92
child 414
81a4c3a63e65
equal deleted inserted replaced
396:3539dd99ab92 397:cfc1193b1e65
28 28
29 #include "cx/allocator.h" 29 #include "cx/allocator.h"
30 30
31 #include <stdlib.h> 31 #include <stdlib.h>
32 32
33 void *cx_malloc_stdlib(void *unused, size_t n) {
34 return malloc(n);
35 }
36
37 void *cx_realloc_stdlib(void *unused, void *mem, size_t n) {
38 return realloc(mem, n);
39 }
40
41 void *cx_calloc_stdlib(void *unused, size_t nelem, size_t n) {
42 return calloc(nelem, n);
43 }
44
45 void cx_free_stdlib(void *unused, void *mem) {
46 free(mem);
47 }
48
33 cx_allocator_class cx_default_allocator_class = { 49 cx_allocator_class cx_default_allocator_class = {
34 cx_malloc_stdlib, 50 cx_malloc_stdlib,
35 cx_realloc_stdlib, 51 cx_realloc_stdlib,
36 cx_calloc_stdlib, 52 cx_calloc_stdlib,
37 cx_free_stdlib 53 cx_free_stdlib
41 &cx_default_allocator_class, 57 &cx_default_allocator_class,
42 NULL 58 NULL
43 }; 59 };
44 CxAllocator cxDefaultAllocator = &cx_default_allocator; 60 CxAllocator cxDefaultAllocator = &cx_default_allocator;
45 61
46 void* cx_malloc_stdlib(cx_allocator a, size_t n) { 62 void *cxMalloc(CxAllocator allocator, size_t n) {
47 return malloc(n);
48 }
49
50 void* cx_realloc_stdlib(cx_allocator a, void* mem, size_t n) {
51 return realloc(mem, n);
52 }
53
54 void* cx_calloc_stdlib(cx_allocator a, size_t nelem, size_t n) {
55 return calloc(nelem, n);
56 }
57
58 void cx_free_stdlib(cx_allocator a, void* mem) {
59 free(mem);
60 }
61
62 void* cxMalloc(CxAllocator allocator, size_t n) {
63 return allocator->cl->malloc(allocator->data, n); 63 return allocator->cl->malloc(allocator->data, n);
64 } 64 }
65 65
66 void* cxRealloc(CxAllocator allocator, void* mem, size_t n) { 66 void *cxRealloc(CxAllocator allocator, void *mem, size_t n) {
67 return allocator->cl->realloc(allocator->data, mem, n); 67 return allocator->cl->realloc(allocator->data, mem, n);
68 } 68 }
69 69
70 void* cxCalloc(CxAllocator allocator, size_t nelem, size_t n) { 70 void *cxCalloc(CxAllocator allocator, size_t nelem, size_t n) {
71 return allocator->cl->calloc(allocator->data, nelem, n); 71 return allocator->cl->calloc(allocator->data, nelem, n);
72 } 72 }
73 73
74 void cxFree(CxAllocator allocator, void* mem) { 74 void cxFree(CxAllocator allocator, void *mem) {
75 allocator->cl->free(allocator->data, mem); 75 allocator->cl->free(allocator->data, mem);
76 } 76 }

mercurial