| 5729 | } |
| 5730 | |
| 5731 | void BlockMetadata_TLSF::MergeBlock(Block* block, Block* prev) |
| 5732 | { |
| 5733 | D3D12MA_ASSERT(block->prevPhysical == prev && "Cannot merge seperate physical regions!"); |
| 5734 | D3D12MA_ASSERT(!prev->IsFree() && "Cannot merge block that belongs to free list!"); |
| 5735 | |
| 5736 | block->offset = prev->offset; |
| 5737 | block->size += prev->size; |
| 5738 | block->prevPhysical = prev->prevPhysical; |
| 5739 | if (block->prevPhysical) |
| 5740 | block->prevPhysical->nextPhysical = block; |
| 5741 | m_BlockAllocator.Free(prev); |
| 5742 | } |
| 5743 | |
| 5744 | BlockMetadata_TLSF::Block* BlockMetadata_TLSF::FindFreeBlock(UINT64 size, UINT32& listIndex) const |
| 5745 | { |