19 while ( pCurrentNode != &
ms_oNil )
21 pResult = pCurrentNode;
22 pCurrentNode = pResult->
m_pLeft;
41 if ( pNode_00 == pTVar1 )
45 if ( pTVar1->
red == 0 )
65 else if ( pTVar1->
red == 0 )
67 if ( node == pNode_00->
m_pLeft )
100 while ( pNode->
red == 0 && pTVar4 != pNode )
105 if ( pNode == pTVar1 )
109 if ( pTVar1->
red != 0 )
119 if ( ( uVar2 == 0 ) && ( pTVar1->
m_pLeft->
red == 0 ) )
135 pTVar1->
red = pTVar3->
red;
144 if ( pTVar1->
red != 0 )
169 pTVar1->
red = pTVar3->
red;
244 if ( pNode == pTVar1->
m_pLeft )
256 if ( oldRedValue == 0 )
283 if ( pNode == pTVar1->
m_pLeft )
313 if ( pNode == pTVar1->
m_pLeft )
359 }
while ( pTVar2 != &
ms_oNil );
375 if ( pNode == pTVar2->
m_pLeft )
381 if ( pTVar1 == pTVar2 )
386 bVar3 = pTVar2 == pTVar1->
m_pLeft;
#define TOSHI_NAMESPACE_START
#define TOSHI_NAMESPACE_END
Red-black tree implementation for the Toshi engine.
T2GenericRedBlackTreeNode * m_pParent
T2GenericRedBlackTreeNode * m_pRight
T2GenericRedBlackTreeNode * m_pLeft
T2GenericRedBlackTreeNode * GetFirstNode() const
static T2GenericRedBlackTreeNode * GetSuccessorOf(const T2GenericRedBlackTreeNode *pNode)
void DeleteFixUp(T2GenericRedBlackTreeNode *pNode)
void LeftRotate(T2GenericRedBlackTreeNode *pNode)
static constinit T2GenericRedBlackTreeNode ms_oNil
T2GenericRedBlackTreeNode * DeleteNode(T2GenericRedBlackTreeNode *pNode)
T2GenericRedBlackTreeNode * Insert(T2GenericRedBlackTreeNode *pNode)
static T2GenericRedBlackTreeNode * GetPredecessorOf(const T2GenericRedBlackTreeNode *pNode)
T2GenericRedBlackTreeNode m_oRoot
void RightRotate(T2GenericRedBlackTreeNode *pNode)