// Bounds Check
if( (tVAddr)gHeapEnd + ((Bytes+0xFFF)&~0xFFF) > MM_KHEAP_MAX ) {
- Bytes = MM_KHEAP_MAX - (tVAddr)gHeapEnd;
+// Bytes = MM_KHEAP_MAX - (tVAddr)gHeapEnd;
return NULL;
}
else
frag = 0;
Log_Log("Heap", "%i.%02i%% Heap Fragmentation", frag/100, frag%100);
- avgAlloc = (totalBytes-freeBytes)/(nBlocks-nFree);
+ if(nBlocks <= nFree)
+ avgAlloc = 0;
+ else
+ avgAlloc = (totalBytes-freeBytes)/(nBlocks-nFree);
if(avgAlloc != 0)
overhead = (sizeof(tHeapFoot)+sizeof(tHeapHead))*10000/avgAlloc;
else
// Scan and get distribution
#if 1
+ if(nBlocks > 0)
{
struct {
Uint Size;