From 75d4afb12ab252d5dc31dc9a1397137d29810409 Mon Sep 17 00:00:00 2001 From: Rye Mutt <rye@alchemyviewer.org> Date: Fri, 23 Oct 2020 02:44:38 -0400 Subject: [PATCH] This is faster. --- indra/newview/llviewerobject.cpp | 16 +++++++--------- indra/newview/llviewerobject.h | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 491f7bd1b35..a9eee47e050 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -348,8 +348,7 @@ LLViewerObject::~LLViewerObject() } // Delete memory associated with extra parameters. - std::map<U16, ExtraParameter*>::iterator iter; - for (iter = mExtraParameterList.begin(); iter != mExtraParameterList.end(); ++iter) + for (auto iter = mExtraParameterList.begin(), end_it = mExtraParameterList.end(); iter != end_it; ++iter) { if(iter->second != NULL) { @@ -1544,8 +1543,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, unpackParticleSource(block_num, owner_id); // Mark all extra parameters not used - std::map<U16, ExtraParameter*>::iterator iter; - for (iter = mExtraParameterList.begin(); iter != mExtraParameterList.end(); ++iter) + for (auto iter = mExtraParameterList.begin(), end_it = mExtraParameterList.end(); iter != end_it; ++iter) { iter->second->in_use = FALSE; } @@ -1574,7 +1572,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, delete[] buffer; } - for (iter = mExtraParameterList.begin(); iter != mExtraParameterList.end(); ++iter) + for (auto iter = mExtraParameterList.begin(), end_it = mExtraParameterList.end(); iter != end_it; ++iter) { if (!iter->second->in_use) { @@ -1943,7 +1941,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, // Mark all extra parameters not used std::map<U16, ExtraParameter*>::iterator iter; - for (iter = mExtraParameterList.begin(); iter != mExtraParameterList.end(); ++iter) + for (auto iter = mExtraParameterList.begin(), end_it = mExtraParameterList.end(); iter != end_it; ++iter) { iter->second->in_use = FALSE; } @@ -1963,7 +1961,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, unpackParameterEntry(param_type, &dp2); } - for (iter = mExtraParameterList.begin(); iter != mExtraParameterList.end(); ++iter) + for (auto iter = mExtraParameterList.begin(), end_it = mExtraParameterList.end(); iter != end_it; ++iter) { if (!iter->second->in_use) { @@ -6073,7 +6071,7 @@ LLViewerObject::ExtraParameter* LLViewerObject::createNewParameterEntry(U16 para ExtraParameter* new_entry = new ExtraParameter; new_entry->data = new_block; new_entry->in_use = false; // not in use yet - mExtraParameterList[param_type] = new_entry; + mExtraParameterList.insert_or_assign(param_type, new_entry); return new_entry; } return NULL; @@ -6081,7 +6079,7 @@ LLViewerObject::ExtraParameter* LLViewerObject::createNewParameterEntry(U16 para LLViewerObject::ExtraParameter* LLViewerObject::getExtraParameterEntry(U16 param_type) const { - std::map<U16, ExtraParameter*>::const_iterator itor = mExtraParameterList.find(param_type); + auto itor = mExtraParameterList.find(param_type); if (itor != mExtraParameterList.end()) { return itor->second; diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index d5b91708c2b..f224851e6bd 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -123,7 +123,7 @@ class LLViewerObject BOOL in_use; LLNetworkData *data; }; - std::map<U16, ExtraParameter*> mExtraParameterList; + absl::flat_hash_map<U16, ExtraParameter*> mExtraParameterList; public: typedef std::list<LLPointer<LLViewerObject> > child_list_t; -- GitLab