| 5397 | |
| 5398 | template<typename T> |
| 5399 | VmaListItem<T>* VmaRawList<T>::InsertBefore(ItemType* pItem) |
| 5400 | { |
| 5401 | if(pItem != VMA_NULL) |
| 5402 | { |
| 5403 | ItemType* const prevItem = pItem->pPrev; |
| 5404 | ItemType* const newItem = m_ItemAllocator.Alloc(); |
| 5405 | newItem->pPrev = prevItem; |
| 5406 | newItem->pNext = pItem; |
| 5407 | pItem->pPrev = newItem; |
| 5408 | if(prevItem != VMA_NULL) |
| 5409 | { |
| 5410 | prevItem->pNext = newItem; |
| 5411 | } |
| 5412 | else |
| 5413 | { |
| 5414 | VMA_HEAVY_ASSERT(m_pFront == pItem); |
| 5415 | m_pFront = newItem; |
| 5416 | } |
| 5417 | ++m_Count; |
| 5418 | return newItem; |
| 5419 | } |
| 5420 | return PushBack(); |
| 5421 | } |
| 5422 | |
| 5423 | template<typename T> |
| 5424 | VmaListItem<T>* VmaRawList<T>::InsertAfter(ItemType* pItem) |