From e7c975b2f136050a3acfa4324d6c27e2bf20f5f8 Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Thu, 26 Aug 2021 07:47:09 -0400
Subject: [PATCH] Add LLMessageSystem::hasFast to avoid excessive mutex locks
 and string finds

---
 indra/llmessage/message.cpp | 5 +++++
 indra/llmessage/message.h   | 1 +
 2 files changed, 6 insertions(+)

diff --git a/indra/llmessage/message.cpp b/indra/llmessage/message.cpp
index 48071ef3610..48aa24bc0ef 100644
--- a/indra/llmessage/message.cpp
+++ b/indra/llmessage/message.cpp
@@ -3962,6 +3962,11 @@ BOOL	LLMessageSystem::has(const char *blockname) const
 	return getNumberOfBlocks(blockname) > 0;
 }
 
+BOOL	LLMessageSystem::hasFast(const char *blockname) const
+{
+	return getNumberOfBlocksFast(blockname) > 0;
+}
+
 S32	LLMessageSystem::getNumberOfBlocksFast(const char *blockname) const
 {
 	return mMessageReader->getNumberOfBlocks(blockname);
diff --git a/indra/llmessage/message.h b/indra/llmessage/message.h
index 1a7881e9432..2add4213a6d 100644
--- a/indra/llmessage/message.h
+++ b/indra/llmessage/message.h
@@ -726,6 +726,7 @@ class LLMessageSystem : public LLMessageSenderInterface
 	void	sanityCheck();
 
 	BOOL	has(const char *blockname) const;
+	BOOL	hasFast(const char *blockname) const;
 	S32		getNumberOfBlocksFast(const char *blockname) const;
 	S32		getNumberOfBlocks(const char *blockname) const;
 	S32		getSizeFast(const char *blockname, const char *varname) const;
-- 
GitLab