| 2402 | |
| 2403 | template<typename T> |
| 2404 | void List<T>::Remove(Item* pItem) |
| 2405 | { |
| 2406 | D3D12MA_HEAVY_ASSERT(pItem != NULL); |
| 2407 | D3D12MA_HEAVY_ASSERT(m_Count > 0); |
| 2408 | |
| 2409 | if(pItem->pPrev != NULL) |
| 2410 | { |
| 2411 | pItem->pPrev->pNext = pItem->pNext; |
| 2412 | } |
| 2413 | else |
| 2414 | { |
| 2415 | D3D12MA_HEAVY_ASSERT(m_pFront == pItem); |
| 2416 | m_pFront = pItem->pNext; |
| 2417 | } |
| 2418 | |
| 2419 | if(pItem->pNext != NULL) |
| 2420 | { |
| 2421 | pItem->pNext->pPrev = pItem->pPrev; |
| 2422 | } |
| 2423 | else |
| 2424 | { |
| 2425 | D3D12MA_HEAVY_ASSERT(m_pBack == pItem); |
| 2426 | m_pBack = pItem->pPrev; |
| 2427 | } |
| 2428 | |
| 2429 | m_ItemAllocator.Free(pItem); |
| 2430 | --m_Count; |
| 2431 | } |
| 2432 | |
| 2433 | template<typename T> |
| 2434 | typename List<T>::Item* List<T>::InsertBefore(Item* pItem) |