|
|
|
@ -1,16 +1,8 @@ |
|
|
|
#include <malloc.h> |
|
|
|
#include "malloc_impl.h" |
|
|
|
|
|
|
|
void *(*const __realloc_dep)(void *, size_t) = realloc; |
|
|
|
|
|
|
|
struct chunk { |
|
|
|
size_t psize, csize; |
|
|
|
struct chunk *next, *prev; |
|
|
|
}; |
|
|
|
|
|
|
|
#define OVERHEAD (2*sizeof(size_t)) |
|
|
|
#define CHUNK_SIZE(c) ((c)->csize & -2) |
|
|
|
#define MEM_TO_CHUNK(p) (struct chunk *)((char *)(p) - OVERHEAD) |
|
|
|
|
|
|
|
size_t malloc_usable_size(void *p) |
|
|
|
{ |
|
|
|
return p ? CHUNK_SIZE(MEM_TO_CHUNK(p)) - OVERHEAD : 0; |
|
|
|
|