From fec6bbddc371b2d1e0aa41d39a1b3dfaa8fb2016 Mon Sep 17 00:00:00 2001
From: andreykproductengine <andreykproductengine@lindenlab.com>
Date: Fri, 3 Nov 2017 20:30:47 +0200
Subject: [PATCH] MAINT-7974 Fixed LLProfile crash(error) caused by thread
 unsafe variable

---
 indra/llmath/llvolume.cpp | 7 -------
 indra/llmath/llvolume.h   | 6 ++++--
 2 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp
index b0ac3c9436d..5068c9c685e 100644
--- a/indra/llmath/llvolume.cpp
+++ b/indra/llmath/llvolume.cpp
@@ -2032,13 +2032,8 @@ void LLPathParams::copyParams(const LLPathParams &params)
 	setSkew(params.getSkew());
 }
 
-S32 profile_delete_lock = 1 ; 
 LLProfile::~LLProfile()
 {
-	if(profile_delete_lock)
-	{
-		LL_ERRS() << "LLProfile should not be deleted here!" << LL_ENDL ;
-	}
 }
 
 
@@ -2103,9 +2098,7 @@ LLVolume::~LLVolume()
 	sNumMeshPoints -= mMesh.size();
 	delete mPathp;
 
-	profile_delete_lock = 0 ;
 	delete mProfilep;
-	profile_delete_lock = 1 ;
 
 	mPathp = NULL;
 	mProfilep = NULL;
diff --git a/indra/llmath/llvolume.h b/indra/llmath/llvolume.h
index d66004cdadb..ec707a1b22c 100644
--- a/indra/llmath/llvolume.h
+++ b/indra/llmath/llvolume.h
@@ -679,6 +679,8 @@ class LLVolumeParams
 
 class LLProfile
 {
+	friend class LLVolume;
+
 public:
 	LLProfile()
 		: mOpen(FALSE),
@@ -689,8 +691,6 @@ class LLProfile
 	{
 	}
 
-	~LLProfile();
-
 	S32	 getTotal() const								{ return mTotal; }
 	S32	 getTotalOut() const							{ return mTotalOut; }	// Total number of outside points
 	BOOL isFlat(S32 face) const							{ return (mFaces[face].mCount == 2); }
@@ -723,6 +723,8 @@ class LLProfile
 	friend std::ostream& operator<<(std::ostream &s, const LLProfile &profile);
 
 protected:
+	~LLProfile();
+
 	static S32 getNumNGonPoints(const LLProfileParams& params, S32 sides, F32 offset=0.0f, F32 bevel = 0.0f, F32 ang_scale = 1.f, S32 split = 0);
 	void genNGon(const LLProfileParams& params, S32 sides, F32 offset=0.0f, F32 bevel = 0.0f, F32 ang_scale = 1.f, S32 split = 0);
 
-- 
GitLab