OLD | NEW |
1 #include <malloc.h> | 1 #include <malloc.h> |
2 | 2 |
3 void *(*const __realloc_dep)(void *, size_t) = realloc; | 3 void* (*const __realloc_dep)(void*, size_t) = realloc; |
4 | 4 |
5 struct chunk { | 5 struct chunk { |
6 » size_t psize, csize; | 6 size_t psize, csize; |
7 » struct chunk *next, *prev; | 7 struct chunk *next, *prev; |
8 }; | 8 }; |
9 | 9 |
10 #define OVERHEAD (2*sizeof(size_t)) | 10 #define OVERHEAD (2 * sizeof(size_t)) |
11 #define CHUNK_SIZE(c) ((c)->csize & -2) | 11 #define CHUNK_SIZE(c) ((c)->csize & -2) |
12 #define MEM_TO_CHUNK(p) (struct chunk *)((char *)(p) - OVERHEAD) | 12 #define MEM_TO_CHUNK(p) (struct chunk*)((char*)(p)-OVERHEAD) |
13 | 13 |
14 size_t malloc_usable_size(void *p) | 14 size_t malloc_usable_size(void* p) { |
15 { | 15 return p ? CHUNK_SIZE(MEM_TO_CHUNK(p)) - OVERHEAD : 0; |
16 » return p ? CHUNK_SIZE(MEM_TO_CHUNK(p)) - OVERHEAD : 0; | |
17 } | 16 } |
OLD | NEW |