summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMnikolenko Productengine <mnikolenko@productengine.com>2016-09-07 17:26:07 +0300
committerMnikolenko Productengine <mnikolenko@productengine.com>2016-09-07 17:26:07 +0300
commit1de6e0830c9cb500239256e9cab9cb565f8c098a (patch)
tree7d2e4334a366723c121dd7a03468e8cb01d9c863
parent464d70c54699315a7c616c9e535dbcfd461167c5 (diff)
MAINT-6699 FIXED [VOB] Crash in LLSnapshotLivePreview::getBigThumbnailImage()
-rw-r--r--indra/newview/llfloatersnapshot.cpp17
-rw-r--r--indra/newview/llfloatersnapshot.h2
2 files changed, 15 insertions, 4 deletions
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index 664668f2f7..ff7594a531 100644
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -1235,14 +1235,14 @@ S32 LLFloaterSnapshot::notify(const LLSD& info)
return 0;
}
-void LLFloaterSnapshotBase::ImplBase::updateLivePreview()
+BOOL LLFloaterSnapshotBase::ImplBase::updatePreviewList(bool initialized)
{
LLFloaterFacebook* floater_facebook = LLFloaterReg::findTypedInstance<LLFloaterFacebook>("facebook");
LLFloaterFlickr* floater_flickr = LLFloaterReg::findTypedInstance<LLFloaterFlickr>("flickr");
LLFloaterTwitter* floater_twitter = LLFloaterReg::findTypedInstance<LLFloaterTwitter>("twitter");
- if (!mFloater && !floater_facebook && !floater_flickr && !floater_twitter)
- return;
+ if (!initialized && !floater_facebook && !floater_flickr && !floater_twitter)
+ return FALSE;
BOOL changed = FALSE;
LL_DEBUGS() << "npreviews: " << LLSnapshotLivePreview::sList.size() << LL_ENDL;
@@ -1251,8 +1251,13 @@ void LLFloaterSnapshotBase::ImplBase::updateLivePreview()
{
changed |= LLSnapshotLivePreview::onIdle(*iter);
}
+ return changed;
+}
+
- if (mFloater && changed)
+void LLFloaterSnapshotBase::ImplBase::updateLivePreview()
+{
+ if (ImplBase::updatePreviewList(true) && mFloater)
{
LL_DEBUGS() << "changed" << LL_ENDL;
updateControls(mFloater);
@@ -1267,6 +1272,10 @@ void LLFloaterSnapshot::update()
{
inst->impl->updateLivePreview();
}
+ else
+ {
+ ImplBase::updatePreviewList(false);
+ }
}
// static
diff --git a/indra/newview/llfloatersnapshot.h b/indra/newview/llfloatersnapshot.h
index 4bcfa674fa..1f303ea4d6 100644
--- a/indra/newview/llfloatersnapshot.h
+++ b/indra/newview/llfloatersnapshot.h
@@ -116,6 +116,8 @@ public:
virtual EStatus getStatus() const { return mStatus; }
virtual void setNeedRefresh(bool need);
+ static BOOL updatePreviewList(bool initialized);
+
void setAdvanced(bool advanced) { mAdvanced = advanced; }
virtual LLSnapshotModel::ESnapshotLayerType getLayerType(LLFloaterSnapshotBase* floater) = 0;