From 72690047871055dafe03b1026f6a209f27a7f138 Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Sun, 26 Feb 2023 17:23:44 -0500
Subject: [PATCH] Fix crash

---
 indra/newview/llstartup.cpp       | 7 +++++--
 indra/newview/llviewernetwork.cpp | 1 -
 indra/newview/llviewernetwork.h   | 1 -
 indra/newview/llviewerregion.cpp  | 4 ++--
 4 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 17499d84d60..6b3eda82e7b 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -3087,8 +3087,11 @@ void LLStartUp::initNameCache()
 void LLStartUp::initExperiences()
 {   
     // Should trigger loading the cache.
-	const std::string& gridlabel = !LLGridManager::getInstance()->isInSecondlife() ? LLGridManager::getInstance()->getGridId() : LLStringUtil::null;
-	LLExperienceCache::initParamSingleton(gridlabel);
+	if (!LLExperienceCache::instanceExists())
+	{
+		const std::string& gridlabel = !LLGridManager::getInstance()->isInSecondlife() ? LLGridManager::getInstance()->getGridId() : LLStringUtil::null;
+		LLExperienceCache::initParamSingleton(gridlabel);
+	}
     LLExperienceCache::instance().setCapabilityQuery(
         boost::bind(&LLAgent::getRegionCapability, &gAgent, _1));
 
diff --git a/indra/newview/llviewernetwork.cpp b/indra/newview/llviewernetwork.cpp
index d341b66d734..fe10a127e30 100644
--- a/indra/newview/llviewernetwork.cpp
+++ b/indra/newview/llviewernetwork.cpp
@@ -143,7 +143,6 @@ void LLGridManager::initialize(const std::string& grid_file)
 
 	// set to undefined
 	mGridList = LLSD();
-	mGridFile = grid_file;
 	// as we don't want an attacker to override our grid list
 	// to point the default grid to an invalid grid
   	addSystemGrid("Second Life",
diff --git a/indra/newview/llviewernetwork.h b/indra/newview/llviewernetwork.h
index 5b979b56d7d..6fcad3ec745 100644
--- a/indra/newview/llviewernetwork.h
+++ b/indra/newview/llviewernetwork.h
@@ -312,7 +312,6 @@ class LLGridManager final : public LLSingleton<LLGridManager>
 
 	bool mLoggedIn;
 	std::string mGrid;
-	std::string mGridFile;
 	LLSD mGridList;
 	EGridPlatform mPlatform;
 	
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index d8461e40968..ec06ab069a1 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -2439,11 +2439,11 @@ void LLViewerRegion::setSimulatorFeatures(const LLSD& sim_features)
 {
 	LL_INFOS() << "region " << getName() << " "  << ll_pretty_print_sd(sim_features) << LL_ENDL;
 	mSimulatorFeatures = sim_features;
+#if !LL_HAVOK
 	if (LLGridManager::getInstance()->isInOpenSim())
 	{
 		setGodnames();
         std::string cur_symbol = LLCurrencyWrapper::instance().getHomeCurrency();
-#if !LL_HAVOK
 		if (mSimulatorFeatures.has("OpenSimExtras"))
 		{
 			const LLSD& extras(mSimulatorFeatures["OpenSimExtras"]);
@@ -2497,7 +2497,6 @@ void LLViewerRegion::setSimulatorFeatures(const LLSD& sim_features)
 			mMaxPhysPrimScale = extras.has("MaxPhysPrimScale") ? extras["MaxPhysPrimScale"].asReal() : OS_DEFAULT_MAX_PRIM_SCALE;
 		}
 		else
-#endif
 		{
 			mWhisperRange = 10;
 			mSayRange = 20;
@@ -2517,6 +2516,7 @@ void LLViewerRegion::setSimulatorFeatures(const LLSD& sim_features)
         }
 	}
 	else
+#endif
 	{
 		mMinSimHeight = SL_MIN_OBJECT_Z;
 		mMaxSimHeight = SL_MAX_OBJECT_Z;
-- 
GitLab