| 2432 | |
| 2433 | template<typename T> |
| 2434 | typename List<T>::Item* List<T>::InsertBefore(Item* pItem) |
| 2435 | { |
| 2436 | if(pItem != NULL) |
| 2437 | { |
| 2438 | Item* const prevItem = pItem->pPrev; |
| 2439 | Item* const newItem = m_ItemAllocator.Alloc(); |
| 2440 | newItem->pPrev = prevItem; |
| 2441 | newItem->pNext = pItem; |
| 2442 | pItem->pPrev = newItem; |
| 2443 | if(prevItem != NULL) |
| 2444 | { |
| 2445 | prevItem->pNext = newItem; |
| 2446 | } |
| 2447 | else |
| 2448 | { |
| 2449 | D3D12MA_HEAVY_ASSERT(m_pFront == pItem); |
| 2450 | m_pFront = newItem; |
| 2451 | } |
| 2452 | ++m_Count; |
| 2453 | return newItem; |
| 2454 | } |
| 2455 | else |
| 2456 | { |
| 2457 | return PushBack(); |
| 2458 | } |
| 2459 | } |
| 2460 | |
| 2461 | template<typename T> |
| 2462 | typename List<T>::Item* List<T>::InsertAfter(Item* pItem) |