diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 2fa6c45d..ab0502d1 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89499,7 +89499,7 @@ 0x00000071011bb794,ActorBase::prePushJob2,4,_ZN4ksys3act8BaseProc11onJobPush2_ENS0_7JobTypeE 0x00000071011bb798,j__ZdlPv_1210,4, 0x00000071011bb79c,StringMapNode::dtorDelete,4,_ZN4ksys3act15BaseProcMapNodeD0Ev -0x00000071011bb7a0,StringMapNode::erase,52,_ZN4ksys3act15BaseProcMapNode6erase_Ev? +0x00000071011bb7a0,StringMapNode::erase,52,_ZN4ksys3act15BaseProcMapNode6erase_Ev 0x00000071011bb7d4,sub_71011BB7D4,20,_ZN4ksys4util14StrTreeMapNodeD2Ev 0x00000071011bb7e8,j__ZdlPv_1212,4,_ZN4ksys4util14StrTreeMapNodeD0Ev 0x00000071011bb7ec,sub_71011BB7EC,8,_ZN4ksys4util14StrTreeMapNode6erase_Ev diff --git a/src/KingSystem/ActorSystem/actBaseProcMap.h b/src/KingSystem/ActorSystem/actBaseProcMap.h index 9cbe42c9..cd900491 100644 --- a/src/KingSystem/ActorSystem/actBaseProcMap.h +++ b/src/KingSystem/ActorSystem/actBaseProcMap.h @@ -11,14 +11,8 @@ public: explicit BaseProcMapNode(BaseProc* proc) : mProc(proc) {} ~BaseProcMapNode() override; - // NON_MATCHING: addressing mode for mPrev void erase_() override { - if (mPrev) - mPrev->mNext = mNext; - - if (mNext) - mNext->mPrev = mPrev; - + unlink_(); StrTreeMapNode::erase_(); mInserted = false; mPrev = mNext = nullptr; @@ -36,6 +30,14 @@ public: void setInserted() { mInserted = true; } private: + void unlink_() { + if (mPrev) + mPrev->mNext = mNext; + + if (mNext) + mNext->mPrev = mPrev; + } + BaseProc* mProc = nullptr; BaseProcMapNode* mPrev = nullptr; BaseProcMapNode* mNext = nullptr;