Lines Matching defs:pFree

366     PRTHEAPOFFSETFREE pFree;
402 pFree = RTHEAPOFF_TO_PTR(pHeapInt, pHeapInt->offFreeHead, PRTHEAPOFFSETFREE);
403 pFree->Core.offNext = 0;
404 pFree->Core.offPrev = 0;
405 pFree->Core.offSelf = pHeapInt->offFreeHead;
406 pFree->Core.fFlags = RTHEAPOFFSETBLOCK_FLAGS_MAGIC | RTHEAPOFFSETBLOCK_FLAGS_FREE;
407 pFree->offNext = 0;
408 pFree->offPrev = 0;
409 pFree->cb = pHeapInt->cbFree;
511 PRTHEAPOFFSETFREE pFree;
521 for (pFree = RTHEAPOFF_TO_PTR_N(pHeapInt, pHeapInt->offFreeHead, PRTHEAPOFFSETFREE);
522 pFree;
523 pFree = RTHEAPOFF_TO_PTR_N(pHeapInt, pFree->offNext, PRTHEAPOFFSETFREE))
526 ASSERT_BLOCK_FREE(pHeapInt, pFree);
531 if (pFree->cb < cb)
533 offAlign = (uintptr_t)(&pFree->Core + 1) & (uAlignment - 1);
538 offAlign = (uintptr_t)(&pFree[1].Core + 1) & (uAlignment - 1);
540 if (pFree->cb < cb + offAlign + sizeof(RTHEAPOFFSETFREE))
547 pPrev = pFree;
548 pFree = (PRTHEAPOFFSETFREE)((uintptr_t)(pFree + 1) + offAlign);
549 pFree->Core.offPrev = pPrev->Core.offSelf;
550 pFree->Core.offNext = pPrev->Core.offNext;
551 pFree->Core.offSelf = RTHEAPOFF_TO_OFF(pHeapInt, pFree);
552 pFree->Core.fFlags = RTHEAPOFFSETBLOCK_FLAGS_MAGIC | RTHEAPOFFSETBLOCK_FLAGS_FREE;
553 pFree->offPrev = pPrev->Core.offSelf;
554 pFree->offNext = pPrev->offNext;
555 pFree->cb = (pFree->Core.offNext ? pFree->Core.offNext : pHeapInt->cbHeap)
556 - pFree->Core.offSelf - sizeof(RTHEAPOFFSETBLOCK);
558 pPrev->Core.offNext = pFree->Core.offSelf;
559 pPrev->offNext = pFree->Core.offSelf;
560 pPrev->cb = pFree->Core.offSelf - pPrev->Core.offSelf - sizeof(RTHEAPOFFSETBLOCK);
562 if (pFree->Core.offNext)
563 RTHEAPOFF_TO_PTR(pHeapInt, pFree->Core.offNext, PRTHEAPOFFSETBLOCK)->offPrev = pFree->Core.offSelf;
564 if (pFree->offNext)
565 RTHEAPOFF_TO_PTR(pHeapInt, pFree->Core.offNext, PRTHEAPOFFSETFREE)->offPrev = pFree->Core.offSelf;
567 pHeapInt->offFreeTail = pFree->Core.offSelf;
571 ASSERT_BLOCK_FREE(pHeapInt, pFree);
577 if (pFree->cb >= cb + RT_ALIGN_Z(sizeof(RTHEAPOFFSETFREE), RTHEAPOFFSET_ALIGNMENT))
582 PRTHEAPOFFSETFREE pNew = (PRTHEAPOFFSETFREE)((uintptr_t)&pFree->Core + cb + sizeof(RTHEAPOFFSETBLOCK));
585 pNew->Core.offNext = pFree->Core.offNext;
586 if (pFree->Core.offNext)
587 RTHEAPOFF_TO_PTR(pHeapInt, pFree->Core.offNext, PRTHEAPOFFSETBLOCK)->offPrev = pNew->Core.offSelf;
588 pNew->Core.offPrev = RTHEAPOFF_TO_OFF(pHeapInt, pFree);
591 pNew->offNext = pFree->offNext;
596 pNew->offPrev = pFree->offPrev;
608 pFree->Core.fFlags &= ~RTHEAPOFFSETBLOCK_FLAGS_FREE;
609 pFree->Core.offNext = pNew->Core.offSelf;
610 pHeapInt->cbFree -= pFree->cb;
612 pRet = &pFree->Core;
620 if (pFree->offNext)
621 RTHEAPOFF_TO_PTR(pHeapInt, pFree->offNext, PRTHEAPOFFSETFREE)->offPrev = pFree->offPrev;
623 pHeapInt->offFreeTail = pFree->offPrev;
624 if (pFree->offPrev)
625 RTHEAPOFF_TO_PTR(pHeapInt, pFree->offPrev, PRTHEAPOFFSETFREE)->offNext = pFree->offNext;
627 pHeapInt->offFreeHead = pFree->offNext;
632 pHeapInt->cbFree -= pFree->cb;
633 pFree->Core.fFlags &= ~RTHEAPOFFSETBLOCK_FLAGS_FREE;
634 pRet = &pFree->Core;
694 PRTHEAPOFFSETFREE pFree = (PRTHEAPOFFSETFREE)pBlock;
710 pRight = RTHEAPOFF_TO_PTR_N(pHeapInt, pFree->Core.offNext, PRTHEAPOFFSETFREE);
726 AssertMsgReturnVoid(pLeft != pFree, ("Freed twice! pv=%p (pBlock=%p)\n", pBlock + 1, pBlock));
727 ASSERT_L(RTHEAPOFF_TO_OFF(pHeapInt, pLeft), RTHEAPOFF_TO_OFF(pHeapInt, pFree));
728 Assert(!pRight || (uintptr_t)pRight > (uintptr_t)pFree);
737 pFree->Core.fFlags |= RTHEAPOFFSETBLOCK_FLAGS_FREE;
738 pFree->offPrev = 0;
739 pFree->offNext = RTHEAPOFF_TO_OFF(pHeapInt, pRight);
741 pRight->offPrev = RTHEAPOFF_TO_OFF(pHeapInt, pFree);
743 pHeapInt->offFreeTail = RTHEAPOFF_TO_OFF(pHeapInt, pFree);
744 pHeapInt->offFreeHead = RTHEAPOFF_TO_OFF(pHeapInt, pFree);
751 if (pLeft->Core.offNext == RTHEAPOFF_TO_OFF(pHeapInt, pFree))
753 pLeft->Core.offNext = pFree->Core.offNext;
754 if (pFree->Core.offNext)
755 RTHEAPOFF_TO_PTR(pHeapInt, pFree->Core.offNext, PRTHEAPOFFSETBLOCK)->offPrev = RTHEAPOFF_TO_OFF(pHeapInt, pLeft);
757 pFree = pLeft;
764 pFree->Core.fFlags |= RTHEAPOFFSETBLOCK_FLAGS_FREE;
765 pFree->offNext = RTHEAPOFF_TO_OFF(pHeapInt, pRight);
766 pFree->offPrev = RTHEAPOFF_TO_OFF(pHeapInt, pLeft);
767 pLeft->offNext = RTHEAPOFF_TO_OFF(pHeapInt, pFree);
769 pRight->offPrev = RTHEAPOFF_TO_OFF(pHeapInt, pFree);
771 pHeapInt->offFreeTail = RTHEAPOFF_TO_OFF(pHeapInt, pFree);
779 && pRight->Core.offPrev == RTHEAPOFF_TO_OFF(pHeapInt, pFree))
782 pFree->Core.offNext = pRight->Core.offNext;
784 RTHEAPOFF_TO_PTR(pHeapInt, pRight->Core.offNext, PRTHEAPOFFSETBLOCK)->offPrev = RTHEAPOFF_TO_OFF(pHeapInt, pFree);
787 pFree->offNext = pRight->offNext;
789 RTHEAPOFF_TO_PTR(pHeapInt, pRight->offNext, PRTHEAPOFFSETFREE)->offPrev = RTHEAPOFF_TO_OFF(pHeapInt, pFree);
791 pHeapInt->offFreeTail = RTHEAPOFF_TO_OFF(pHeapInt, pFree);
798 pFree->cb = (pFree->Core.offNext ? pFree->Core.offNext : pHeapInt->cbHeap)
799 - RTHEAPOFF_TO_OFF(pHeapInt, pFree) - sizeof(RTHEAPOFFSETBLOCK);
800 pHeapInt->cbFree += pFree->cb;
801 ASSERT_BLOCK_FREE(pHeapInt, pFree);