From 307f176ef276c72382151353895ef0c29ea8635c Mon Sep 17 00:00:00 2001 From: Rye Mutt <rye@alchemyviewer.org> Date: Mon, 30 Aug 2021 10:13:51 -0400 Subject: [PATCH] Reduce map finds when creating new UDP message --- indra/llmessage/llsdmessagebuilder.cpp | 6 ------ indra/llmessage/llsdmessagebuilder.h | 4 ++-- indra/llmessage/lltemplatemessagebuilder.cpp | 19 +++++++------------ indra/llmessage/lltemplatemessagebuilder.h | 2 +- 4 files changed, 10 insertions(+), 21 deletions(-) diff --git a/indra/llmessage/llsdmessagebuilder.cpp b/indra/llmessage/llsdmessagebuilder.cpp index 49456c71ed3..ae3e00e9f37 100644 --- a/indra/llmessage/llsdmessagebuilder.cpp +++ b/indra/llmessage/llsdmessagebuilder.cpp @@ -49,12 +49,6 @@ LLSDMessageBuilder::LLSDMessageBuilder() : { } -//virtual -LLSDMessageBuilder::~LLSDMessageBuilder() -{ -} - - // virtual void LLSDMessageBuilder::newMessage(const char* name) { diff --git a/indra/llmessage/llsdmessagebuilder.h b/indra/llmessage/llsdmessagebuilder.h index 9c7c1bfde35..5335dfad3d9 100644 --- a/indra/llmessage/llsdmessagebuilder.h +++ b/indra/llmessage/llsdmessagebuilder.h @@ -36,14 +36,14 @@ class LLMessageTemplate; class LLMsgData; -class LLSDMessageBuilder : public LLMessageBuilder +class LLSDMessageBuilder final : public LLMessageBuilder { public: //CLASS_LOG_TYPE(LLSDMessageBuilder); LLSDMessageBuilder(); - virtual ~LLSDMessageBuilder(); + virtual ~LLSDMessageBuilder() = default; virtual void newMessage(const char* name); diff --git a/indra/llmessage/lltemplatemessagebuilder.cpp b/indra/llmessage/lltemplatemessagebuilder.cpp index 5ac5f6c5803..530f2ae4e9a 100644 --- a/indra/llmessage/lltemplatemessagebuilder.cpp +++ b/indra/llmessage/lltemplatemessagebuilder.cpp @@ -68,28 +68,25 @@ void LLTemplateMessageBuilder::newMessage(const char *name) mCurrentSMessageData = NULL; char* namep = (char*)name; - if (mMessageTemplates.count(namep) > 0) + auto it = mMessageTemplates.find(namep); + if (it != mMessageTemplates.end()) { - mCurrentSMessageTemplate = mMessageTemplates.find(name)->second; + mCurrentSMessageTemplate = it->second; mCurrentSMessageData = new LLMsgData(namep); mCurrentSMessageName = namep; mCurrentSDataBlock = NULL; mCurrentSBlockName = NULL; // add at one of each block - const LLMessageTemplate* msg_template = mMessageTemplates.find(name)->second; + const LLMessageTemplate* msg_template = it->second; if (msg_template->getDeprecation() != MD_NOTDEPRECATED) { LL_WARNS() << "Sending deprecated message " << namep << LL_ENDL; } - LLMessageTemplate::message_block_map_t::const_iterator iter; - for(iter = msg_template->mMemberBlocks.begin(); - iter != msg_template->mMemberBlocks.end(); - ++iter) + for(LLMessageBlock* ci : msg_template->mMemberBlocks) { - LLMessageBlock* ci = *iter; LLMsgBlkData* tblockp = new LLMsgBlkData(ci->mName, 0); mCurrentSMessageData->addBlock(tblockp); } @@ -148,11 +145,9 @@ void LLTemplateMessageBuilder::nextBlock(const char* blockname) mCurrentSBlockName = bnamep; // add placeholders for each of the variables - for (LLMessageBlock::message_variable_map_t::const_iterator iter = template_data->mMemberVariables.begin(); - iter != template_data->mMemberVariables.end(); iter++) + for (const LLMessageVariable* ci : template_data->mMemberVariables) { - LLMessageVariable& ci = **iter; - mCurrentSDataBlock->addVariable(ci.getName(), ci.getType()); + mCurrentSDataBlock->addVariable(ci->getName(), ci->getType()); } return; } diff --git a/indra/llmessage/lltemplatemessagebuilder.h b/indra/llmessage/lltemplatemessagebuilder.h index 4f614a46575..855ea871448 100644 --- a/indra/llmessage/lltemplatemessagebuilder.h +++ b/indra/llmessage/lltemplatemessagebuilder.h @@ -37,7 +37,7 @@ class LLMessageTemplate; class LLMsgBlkData; class LLMessageTemplate; -class LLTemplateMessageBuilder : public LLMessageBuilder +class LLTemplateMessageBuilder final : public LLMessageBuilder { public: -- GitLab