// // Generated By: dol2asm // Translation Unit: linklist // #include "JSystem/JGadget/linklist.h" template class TPRIsEqual_pointer_ { public: TPRIsEqual_pointer_(const T* p) { this->p_ = p; } bool operator()(const T& rSrc) const { return &rSrc == this->p_; } private: const T* p_; }; // // Forward References: // extern "C" void __dt__Q27JGadget13TNodeLinkListFv(); extern "C" void erase__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iterator(); extern "C" void erase__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorQ37JGadget13TNodeLinkList8iterator(); extern "C" void splice__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorRQ27JGadget13TNodeLinkListQ37JGadget13TNodeLinkList8iterator(); extern "C" void Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode(); extern "C" void Erase__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode(); extern "C" void Remove__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode(); // // External References: // extern "C" void __dl__FPv(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); // // Declarations: // /* 802DCA1C-802DCA58 2D735C 003C+00 1/1 6/6 0/0 .text __dt__Q27JGadget13TNodeLinkListFv */ JGadget::TNodeLinkList::~TNodeLinkList() {} /* 802DCA58-802DCAA0 2D7398 0048+00 0/0 2/2 0/0 .text * erase__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iterator */ JGadget::TNodeLinkList::iterator JGadget::TNodeLinkList::erase(JGadget::TNodeLinkList::iterator it) { iterator next = it; ++next; return erase(it, next); } /* 802DCAA0-802DCB08 2D73E0 0068+00 1/1 0/0 0/0 .text * erase__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorQ37JGadget13TNodeLinkList8iterator */ JGadget::TNodeLinkList::iterator JGadget::TNodeLinkList::erase(iterator a, iterator b) { TLinkListNode* cur = a.node; TLinkListNode* end = b.node; TLinkListNode* next; for (; cur != end; cur = next) { next = cur->mNext; Erase(cur); } return b; } /* 802DCB08-802DCBA8 2D7448 00A0+00 1/1 0/0 0/0 .text * splice__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorRQ27JGadget13TNodeLinkListQ37JGadget13TNodeLinkList8iterator */ void JGadget::TNodeLinkList::splice(iterator it, TNodeLinkList& rSrc, iterator itSrc) { iterator itSrcNext = itSrc; ++itSrcNext; if ((it == itSrc) || (it == itSrcNext)) { return; } else { TLinkListNode* const node = &(*itSrc); rSrc.Erase(node); Insert(it, node); } } /* 802DCBA8-802DCBD4 2D74E8 002C+00 1/1 7/7 0/0 .text * Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode */ JGadget::TNodeLinkList::iterator JGadget::TNodeLinkList::Insert(iterator it, TLinkListNode* p) { TLinkListNode* pIt = it.node; TLinkListNode* pItPrev = pIt->mPrev; p->mNext = pIt; p->mPrev = pItPrev; pIt->mPrev = p; pItPrev->mNext = p; count++; return iterator(p); } /* 802DCBD4-802DCBF8 2D7514 0024+00 2/2 4/4 0/0 .text * Erase__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode */ JGadget::TNodeLinkList::iterator JGadget::TNodeLinkList::Erase(TLinkListNode* p) { TLinkListNode* pNext = p->mNext; TLinkListNode* pPrev = p->mPrev; pNext->mPrev = pPrev; pPrev->mNext = pNext; count--; return iterator(pNext); } /* 802DCBF8-802DCCC8 2D7538 00D0+00 0/0 2/2 0/0 .text * Remove__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode */ // missing stack #ifdef NONMATCHING void JGadget::TNodeLinkList::Remove(TLinkListNode* p) { remove_if(TPRIsEqual_pointer_(p)); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void JGadget::TNodeLinkList::Remove(JGadget::TLinkListNode* param_0) { nofralloc #include "asm/JSystem/JGadget/linklist/Remove__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode.s" } #pragma pop #endif