From f4d54addffa7e6101a5c293b489cf0052341b43e Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Wed, 14 Jul 2021 17:43:46 -0400
Subject: [PATCH] Reduce string operations in polymorph targets

---
 indra/llappearance/llpolymesh.cpp  | 6 ++----
 indra/llappearance/llpolymesh.h    | 2 +-
 indra/llappearance/llpolymorph.cpp | 2 +-
 3 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/indra/llappearance/llpolymesh.cpp b/indra/llappearance/llpolymesh.cpp
index bf015f28571..1c46f0a2b40 100644
--- a/indra/llappearance/llpolymesh.cpp
+++ b/indra/llappearance/llpolymesh.cpp
@@ -991,14 +991,12 @@ void LLPolyMesh::initializeForMorph()
 //-----------------------------------------------------------------------------
 // getMorphData()
 //-----------------------------------------------------------------------------
-LLPolyMorphData*        LLPolyMesh::getMorphData(const std::string& morph_name)
+LLPolyMorphData*        LLPolyMesh::getMorphData(const std::string_view morph_name)
 {
         if (!mSharedData)
                 return NULL;
-        for (LLPolyMeshSharedData::morphdata_list_t::iterator iter = mSharedData->mMorphData.begin();
-             iter != mSharedData->mMorphData.end(); ++iter)
+        for (LLPolyMorphData* morph_data : mSharedData->mMorphData)
         {
-                LLPolyMorphData *morph_data = *iter;
                 if (morph_data->getName() == morph_name)
                 {
                         return morph_data;
diff --git a/indra/llappearance/llpolymesh.h b/indra/llappearance/llpolymesh.h
index 479a1d2a029..048536e21ea 100644
--- a/indra/llappearance/llpolymesh.h
+++ b/indra/llappearance/llpolymesh.h
@@ -306,7 +306,7 @@ class LLPolyMesh
 		return mSharedData->mJointNames;
 	}
 
-	LLPolyMorphData*	getMorphData(const std::string& morph_name);
+	LLPolyMorphData*	getMorphData(std::string_view morph_name);
 // 	void	removeMorphData(LLPolyMorphData *morph_target);
 // 	void	deleteAllMorphData();
 
diff --git a/indra/llappearance/llpolymorph.cpp b/indra/llappearance/llpolymorph.cpp
index 072efeeee34..c8837f3ae51 100644
--- a/indra/llappearance/llpolymorph.cpp
+++ b/indra/llappearance/llpolymorph.cpp
@@ -378,7 +378,7 @@ BOOL LLPolyMorphTarget::setInfo(LLPolyMorphTargetInfo* info)
 		}
 	}
 
-	std::string morph_param_name = getInfo()->mMorphName;
+	std::string_view morph_param_name = getInfo()->mMorphName;
 	
 	mMorphData = mMesh->getMorphData(morph_param_name);
 	if (!mMorphData)
-- 
GitLab