From fec6bbddc371b2d1e0aa41d39a1b3dfaa8fb2016 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Fri, 3 Nov 2017 20:30:47 +0200 Subject: 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 b0ac3c9436..5068c9c685 100644 --- a/indra/llmath/llvolume.cpp +++ b/indra/llmath/llvolume.cpp @@ -2032,13 +2032,8 @@ void LLPathParams::copyParams(const LLPathParams ¶ms) 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 d66004cdad..ec707a1b22 100644 --- a/indra/llmath/llvolume.h +++ b/indra/llmath/llvolume.h @@ -679,6 +679,8 @@ protected: class LLProfile { + friend class LLVolume; + public: LLProfile() : mOpen(FALSE), @@ -689,8 +691,6 @@ public: { } - ~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 @@ public: 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); -- cgit v1.2.3