Changeset 588 for GPL/branches/uniaud32-2.1.x/lib32/malloc.c
- Timestamp:
- Feb 10, 2017, 2:50:49 AM (9 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
GPL/branches/uniaud32-2.1.x/lib32/malloc.c
r587 r588 384 384 physically located after pmb. 385 385 386 Helper function remove() removes an element from the free list.386 Helper function h_remove() removes an element from the free list. 387 387 */ 388 388 389 389 #define after(pmb) ((PMEMBLOCK) ((char *) pmb + pmb->ulSize + HDR_SIZE)) 390 390 391 void remove(PMEMBLOCK pmb)391 void h_remove(PMEMBLOCK pmb) 392 392 { 393 393 PMEMBLOCK pmbPrev; 394 394 395 if (pmb == pmbFree) { 395 if (pmb == pmbFree) 396 { 396 397 pmbFree = pmbFree->pmbNext; 397 398 return; 398 399 } 399 400 400 for (pmbPrev=pmbFree; pmbPrev; pmbPrev=pmbPrev->pmbNext) { 401 if (pmbPrev->pmbNext == pmb) { 401 for (pmbPrev=pmbFree; pmbPrev; pmbPrev=pmbPrev->pmbNext) 402 { 403 if (pmbPrev->pmbNext == pmb) 404 { 402 405 pmbPrev->pmbNext = pmb->pmbNext; 403 406 return; … … 405 408 } 406 409 } 407 //***************************************************************************** 410 408 411 //***************************************************************************** 409 412 void compact(void) … … 417 420 // dprintf(("HEAP: compact found pointer %p (size=%ui) before pmbFree %p\n", (void __far *) pmb, pmb->uSize, (void __far *) pmbFree)); 418 421 pmb->ulSize += HDR_SIZE + pmbFree->ulSize; 419 remove(pmbFree);422 h_remove(pmbFree); 420 423 if (++sFreed == 2) break; 421 424 } else if (after(pmbFree) == pmb) { 422 425 // dprintf(("HEAP: compact found pointer %p (size=%ui) after pmbFree %p\n", (void __far *) pmb, pmb->uSize, (void __far *) pmbFree); 423 426 pmbFree->ulSize += HDR_SIZE + pmb->ulSize; 424 remove(pmb);427 h_remove(pmb); 425 428 if (++sFreed == 2) break; 426 429 } … … 554 557 } 555 558 //***************************************************************************** 556 extern "C"APIRET VMAlloc(ULONG size, ULONG flags, LINEAR *pAddr) ;559 extern APIRET VMAlloc(ULONG size, ULONG flags, LINEAR *pAddr) ; 557 560 //***************************************************************************** 558 561 ULONG HeapInit(ULONG ulSize)
Note:
See TracChangeset
for help on using the changeset viewer.