MAINT-7974 Fixed LLProfile crash(error) caused by thread unsafe variable

andreykproductengine 2017-11-03 20:30:47 +02:00
parent 7161619d6c
commit fec6bbddc3
2 changed files with 4 additions and 9 deletions

View File

@ -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;

View File

@ -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);