| 2460 | |
| 2461 | template<typename T> |
| 2462 | typename List<T>::Item* List<T>::InsertAfter(Item* pItem) |
| 2463 | { |
| 2464 | if(pItem != NULL) |
| 2465 | { |
| 2466 | Item* const nextItem = pItem->pNext; |
| 2467 | Item* const newItem = m_ItemAllocator.Alloc(); |
| 2468 | newItem->pNext = nextItem; |
| 2469 | newItem->pPrev = pItem; |
| 2470 | pItem->pNext = newItem; |
| 2471 | if(nextItem != NULL) |
| 2472 | { |
| 2473 | nextItem->pPrev = newItem; |
| 2474 | } |
| 2475 | else |
| 2476 | { |
| 2477 | D3D12MA_HEAVY_ASSERT(m_pBack == pItem); |
| 2478 | m_pBack = newItem; |
| 2479 | } |
| 2480 | ++m_Count; |
| 2481 | return newItem; |
| 2482 | } |
| 2483 | else |
| 2484 | return PushFront(); |
| 2485 | } |
| 2486 | |
| 2487 | template<typename T> |
| 2488 | typename List<T>::Item* List<T>::InsertBefore(Item* pItem, const T& value) |