blob: bc5bf21fbf58e2951eb6f0eef6787d797bd1bc05 [file] [log] [blame]
#include <malloc.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;
}