//----------------------------------------------------------------// void MOAINodeMgr::InsertBefore ( MOAINode& cursor, MOAINode& node ) { if ( cursor.mPrev ) { node.mPrev = cursor.mPrev; node.mNext = &cursor; node.mPrev->mNext = &node; node.mNext->mPrev = &node; node.Retain (); } else { this->PushFront ( node ); } }
//----------------------------------------------------------------// void MOAINodeMgr::InsertAfter ( MOAINode& cursor, MOAINode& node ) { if ( cursor.mNext ) { node.mPrev = &cursor; node.mNext = cursor.mNext; node.mPrev->mNext = &node; node.mNext->mPrev = &node; node.Retain (); } else { this->PushBack ( node ); } }
//----------------------------------------------------------------// void MOAINodeMgr::PushFront ( MOAINode& node ) { node.mNext = 0; node.mPrev = 0; if ( !this->mUpdateListHead ) { this->mUpdateListHead = &node; this->mUpdateListTail = &node; } else { node.mNext = this->mUpdateListHead; this->mUpdateListHead->mPrev = &node; this->mUpdateListHead = &node; } node.Retain (); }
//----------------------------------------------------------------// void MOAINodeMgr::PushBack ( MOAINode& node ) { node.mNext = 0; node.mPrev = 0; if ( !this->mUpdateListHead ) { this->mUpdateListHead = &node; this->mUpdateListTail = &node; } else { node.mPrev = this->mUpdateListTail; this->mUpdateListTail->mNext = &node; this->mUpdateListTail = &node; } node.Retain (); }