| 28 |
28 |
| 29 #include "cx/allocator.h" |
29 #include "cx/allocator.h" |
| 30 |
30 |
| 31 #include <errno.h> |
31 #include <errno.h> |
| 32 |
32 |
| 33 __attribute__((__malloc__, __alloc_size__(2))) |
|
| 34 static void *cx_malloc_stdlib( |
33 static void *cx_malloc_stdlib( |
| 35 cx_attr_unused void *d, |
34 cx_attr_unused void *d, |
| 36 size_t n |
35 size_t n |
| 37 ) { |
36 ) { |
| 38 return malloc(n); |
37 return malloc(n); |
| 39 } |
38 } |
| 40 |
39 |
| 41 __attribute__((__warn_unused_result__, __alloc_size__(3))) |
|
| 42 static void *cx_realloc_stdlib( |
40 static void *cx_realloc_stdlib( |
| 43 cx_attr_unused void *d, |
41 cx_attr_unused void *d, |
| 44 void *mem, |
42 void *mem, |
| 45 size_t n |
43 size_t n |
| 46 ) { |
44 ) { |
| 47 return realloc(mem, n); |
45 return realloc(mem, n); |
| 48 } |
46 } |
| 49 |
47 |
| 50 __attribute__((__malloc__, __alloc_size__(2, 3))) |
|
| 51 static void *cx_calloc_stdlib( |
48 static void *cx_calloc_stdlib( |
| 52 cx_attr_unused void *d, |
49 cx_attr_unused void *d, |
| 53 size_t nelem, |
50 size_t nelem, |
| 54 size_t n |
51 size_t n |
| 55 ) { |
52 ) { |
| 56 return calloc(nelem, n); |
53 return calloc(nelem, n); |
| 57 } |
54 } |
| 58 |
55 |
| 59 __attribute__((__nonnull__)) |
|
| 60 static void cx_free_stdlib( |
56 static void cx_free_stdlib( |
| 61 cx_attr_unused void *d, |
57 cx_attr_unused void *d, |
| 62 void *mem |
58 void *mem |
| 63 ) { |
59 ) { |
| 64 free(mem); |
60 free(mem); |