static void AllocateAllocTable() { numFree = poolSize = 1024; gpItemPool = (MFHeap_AllocItem*)MFHeap_SystemMalloc(sizeof(MFHeap_AllocItem)*poolSize + sizeof(MFHeap_AllocItem*)*poolSize); gppFreeList = (MFHeap_AllocItem**)&gpItemPool[poolSize]; for(size_t i = 0; i<poolSize; ++i) gppFreeList[i] = &gpItemPool[i]; MFZeroMemory(gpAllocTable, sizeof(gpAllocTable)); }
// external heap static void* ExternalMalloc(size_t bytes, void *pUserData) { return MFHeap_SystemMalloc(bytes); }