X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Fheap.c;h=eefd13cf22e6c690e65fcd9702c05846018cdd92;hb=7536e8afcc3018c4ca2a4aa8f8422cf86a6c188c;hp=6d099b33b1d2a9c30d1cb6e8cc43e80dc07abc22;hpb=95a9132bcc024715a0a87cb323d58967ea5b1803;p=tpg%2Facess2.git diff --git a/Kernel/heap.c b/Kernel/heap.c index 6d099b33..eefd13cf 100644 --- a/Kernel/heap.c +++ b/Kernel/heap.c @@ -68,7 +68,7 @@ void *Heap_Extend(int Bytes) // 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; } @@ -684,7 +684,10 @@ void Heap_Stats(void) 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 @@ -697,6 +700,7 @@ void Heap_Stats(void) // Scan and get distribution #if 1 + if(nBlocks > 0) { struct { Uint Size;