summaryrefslogtreecommitdiff
path: root/indra/llinventory/llsettingsbase.cpp
diff options
context:
space:
mode:
authorRider Linden <rider@lindenlab.com>2018-06-21 16:50:00 -0700
committerRider Linden <rider@lindenlab.com>2018-06-21 16:50:00 -0700
commitf15ee2c965a8bfebc9d7b30fb7b42d653c6f88ed (patch)
tree73449b72a5216641078c24a416965786b7259d96 /indra/llinventory/llsettingsbase.cpp
parentb94df67b1f349d77cb108fe169c94d873a193099 (diff)
parenta02b3500b9979c10336eb13674279b3c07367445 (diff)
Merge
Diffstat (limited to 'indra/llinventory/llsettingsbase.cpp')
-rw-r--r--indra/llinventory/llsettingsbase.cpp19
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());
}