diff options
| author | Rider Linden <rider@lindenlab.com> | 2018-06-21 16:50:00 -0700 |
|---|---|---|
| committer | Rider Linden <rider@lindenlab.com> | 2018-06-21 16:50:00 -0700 |
| commit | f15ee2c965a8bfebc9d7b30fb7b42d653c6f88ed (patch) | |
| tree | 73449b72a5216641078c24a416965786b7259d96 /indra/llinventory/llsettingsbase.cpp | |
| parent | b94df67b1f349d77cb108fe169c94d873a193099 (diff) | |
| parent | a02b3500b9979c10336eb13674279b3c07367445 (diff) | |
Merge
Diffstat (limited to 'indra/llinventory/llsettingsbase.cpp')
| -rw-r--r-- | indra/llinventory/llsettingsbase.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/indra/llinventory/llsettingsbase.cpp b/indra/llinventory/llsettingsbase.cpp index db30a25a4c..7bcafabb8a 100644 --- a/indra/llinventory/llsettingsbase.cpp +++ b/indra/llinventory/llsettingsbase.cpp @@ -580,10 +580,18 @@ F64 LLSettingsBlender::setBlendFactor(const LLSettingsBase::BlendFactor& blendf_ } blendf = llclamp(blendf, 0.0f, 1.0f); - mTarget->replaceSettings(mInitial->getSettings()); - if (!mFinal || (mInitial == mFinal) || (blendf == 0.0)) - { // this is a trivial blend. Results will be identical to the initial. - return blendf; + if (mTarget) + { + mTarget->replaceSettings(mInitial->getSettings()); + if (!mFinal || (mInitial == mFinal) || (blendf == 0.0)) + { // this is a trivial blend. Results will be identical to the initial. + return blendf; + } + mTarget->blend(mFinal, blendf); + } + else + { + LL_WARNS("SETTINGS") << "No target for settings blender." << LL_ENDL; } mTarget->blend(mFinal, blendf); @@ -592,7 +600,8 @@ F64 LLSettingsBlender::setBlendFactor(const LLSettingsBase::BlendFactor& blendf_ void LLSettingsBlender::triggerComplete() { - mTarget->replaceSettings(mFinal->getSettings()); + if (mTarget) + mTarget->replaceSettings(mFinal->getSettings()); LLSettingsBlender::ptr_t hold = shared_from_this(); // prevents this from deleting too soon mOnFinished(shared_from_this()); } |
