summaryrefslogtreecommitdiff
path: root/indra/newview/llfavoritesbar.cpp
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2013-10-04 09:47:26 -0700
committerMerov Linden <merov@lindenlab.com>2013-10-04 09:47:26 -0700
commit1e32b9dd33fb9e2f0d9a7935a3696b423a191354 (patch)
treeadeadd5ef0b8c4514b325f74c3426b2af76e422b /indra/newview/llfavoritesbar.cpp
parentf53b2bd880875b5194b6d298e1aad7d8951db9f3 (diff)
parentf7158bc5afcec1da8b9d2d5a4ed86921e62d4959 (diff)
Pull merge of lindenlab/viewer-release
Diffstat (limited to 'indra/newview/llfavoritesbar.cpp')
-rwxr-xr-xindra/newview/llfavoritesbar.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index b35ef3a961..a2d0759587 100755
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -552,6 +552,10 @@ void LLFavoritesBarCtrl::handleNewFavoriteDragAndDrop(LLInventoryItem *item, con
bool insert_before = true;
if (!mItems.empty())
{
+ // [MAINT-2386] When multiple landmarks are selected and dragged onto an empty favorites bar,
+ // the viewer would crash when casting mLastTab below, as mLastTab is still null when the
+ // second landmark is being added.
+ // To ensure mLastTab is valid, we need to call updateButtons() at the end of this function
dest = dynamic_cast<LLFavoriteLandmarkButton*>(mLandingTab);
if (!dest)
{
@@ -623,6 +627,11 @@ void LLFavoritesBarCtrl::handleNewFavoriteDragAndDrop(LLInventoryItem *item, con
cb);
}
+ // [MAINT-2386] Ensure the favorite button has been created and is valid.
+ // This also ensures that mLastTab will be valid when dropping multiple
+ // landmarks to an empty favorites bar.
+ updateButtons();
+
llinfos << "Copied inventory item #" << item->getUUID() << " to favorites." << llendl;
}