From 4f70d8c830c6213bafcbf40f5ff7eb72840739cc Mon Sep 17 00:00:00 2001 From: Cosmic Linden Date: Fri, 2 Jan 2026 21:34:34 -0500 Subject: secondlife/viewer#2462: Optimize unloading of prims Signed-off-by: Rye --- indra/newview/llviewerobjectlist.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'indra/newview/llviewerobjectlist.cpp') diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index 1b38fed3bb..50edb408c7 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -65,6 +65,7 @@ #include "lltoolmgr.h" #include "lltoolpie.h" #include "llkeyboard.h" +#include "llmeshrepository.h" #include "u64.h" #include "llviewertexturelist.h" #include "lldatapacker.h" @@ -1398,6 +1399,8 @@ void LLViewerObjectList::killAllObjects() llassert((objectp == gAgentAvatarp) || objectp->isDead()); } + gMeshRepo.unregisterAllMeshes(); + cleanDeadObjects(false); if(!mObjects.empty()) -- cgit v1.3 From b957c08f02786ffc004cd8077addfe44682624eb Mon Sep 17 00:00:00 2001 From: Rye Date: Fri, 9 Jan 2026 10:37:55 -0500 Subject: Optimize gObjectList findObject and getUUIDFromLocal with unordered_map due to frequent find access --- indra/newview/llviewerobjectlist.cpp | 2 +- indra/newview/llviewerobjectlist.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'indra/newview/llviewerobjectlist.cpp') diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index 50edb408c7..34e5cc9de8 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -174,7 +174,7 @@ bool LLViewerObjectList::removeFromLocalIDTable(LLViewerObject* objectp) U32 local_id = objectp->mLocalID; U64 indexid = (((U64)objectp->mRegionIndex) << 32) | (U64)local_id; - std::map::iterator iter = mIndexAndLocalIDToUUID.find(indexid); + auto iter = mIndexAndLocalIDToUUID.find(indexid); if (iter == mIndexAndLocalIDToUUID.end()) { return false; diff --git a/indra/newview/llviewerobjectlist.h b/indra/newview/llviewerobjectlist.h index 547ef9fb2d..adc90a0483 100644 --- a/indra/newview/llviewerobjectlist.h +++ b/indra/newview/llviewerobjectlist.h @@ -204,7 +204,7 @@ protected: uuid_set_t mDeadObjects; - std::map > mUUIDObjectMap; + std::unordered_map > mUUIDObjectMap; //set of objects that need to update their cost uuid_set_t mStaleObjectCost; @@ -221,7 +221,7 @@ protected: static U32 sSimulatorMachineIndex; std::map mIPAndPortToIndex; - std::map mIndexAndLocalIDToUUID; + std::unordered_map mIndexAndLocalIDToUUID; friend class LLViewerObject; -- cgit v1.3