summaryrefslogtreecommitdiff
path: root/indra/llmath
diff options
context:
space:
mode:
authorandreykproductengine <andreykproductengine@lindenlab.com>2017-11-03 20:30:47 +0200
committerandreykproductengine <andreykproductengine@lindenlab.com>2017-11-03 20:30:47 +0200
commitfec6bbddc371b2d1e0aa41d39a1b3dfaa8fb2016 (patch)
tree36a09f6c6c243d5e6ae8d2b9fa962eb3cd802ffb /indra/llmath
parent7161619d6c0ee790c5741d0df028e428052e5fcc (diff)
MAINT-7974 Fixed LLProfile crash(error) caused by thread unsafe variable
Diffstat (limited to 'indra/llmath')
-rw-r--r--indra/llmath/llvolume.cpp7
-rw-r--r--indra/llmath/llvolume.h6
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 &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 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);