X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Fheap.c;h=fc99f56c212147a018eb809d2b9abe853bad0ded;hb=62747dec23ae7ee6531ebf8e3f307726e810e84c;hp=a9e9931fe4ede32462c4732013b923b7e7c0b4be;hpb=0f8226381e0a19e8e8e11eafbf4589532e45d430;p=tpg%2Facess2.git diff --git a/Kernel/heap.c b/Kernel/heap.c index a9e9931f..fc99f56c 100644 --- a/Kernel/heap.c +++ b/Kernel/heap.c @@ -571,7 +571,8 @@ void Heap_Dump(void) #if !VERBOSE_DUMP Log_Log("Heap", "%p (%P): 0x%08lx %i %4C", head, MM_GetPhysAddr((Uint)head), head->Size, head->ValidSize, &head->Magic); - Log_Log("Heap", "%p %4C", foot->Head, &foot->Magic); + if(foot) + Log_Log("Heap", "Backlink = %p %4C", foot->Head, &foot->Magic); if(head->File) { Log_Log("Heap", "%sowned by %s:%i", (head->Magic==MAGIC_FREE?"was ":""), head->File, head->Line); @@ -680,10 +681,16 @@ void Heap_Stats(void) Log_Log("Heap", "%i blocks (0x%x bytes)", nBlocks, totalBytes); Log_Log("Heap", "%i free blocks (0x%x bytes)", nFree, freeBytes); - frag = (nFree-1)*10000/nBlocks; + if(nBlocks != 0) + frag = (nFree-1)*10000/nBlocks; + else + frag = 0; Log_Log("Heap", "%i.%02i%% Heap Fragmentation", frag/100, frag%100); avgAlloc = (totalBytes-freeBytes)/(nBlocks-nFree); - overhead = (sizeof(tHeapFoot)+sizeof(tHeapHead))*10000/avgAlloc; + if(avgAlloc != 0) + overhead = (sizeof(tHeapFoot)+sizeof(tHeapHead))*10000/avgAlloc; + else + overhead = 0; Log_Log("Heap", "Average allocation: %i bytes, Average Overhead: %i.%02i%%", avgAlloc, overhead/100, overhead%100 );