From 3fc3773ab848ff7fcfcb40c61e211ee13592f418 Mon Sep 17 00:00:00 2001 From: Richard Nelson Date: Fri, 25 Jun 2010 14:57:42 -0700 Subject: EXT-7991 FIX Crash if exit before outfit autopopulate completes reviewed by Leyla --- indra/newview/llagentwearablesfetch.cpp | 2 +- indra/newview/llviewerinventory.cpp | 15 +++++++++++++++ indra/newview/llviewerinventory.h | 9 +++++++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/indra/newview/llagentwearablesfetch.cpp b/indra/newview/llagentwearablesfetch.cpp index 0a2f0e9399..d911d123f4 100644 --- a/indra/newview/llagentwearablesfetch.cpp +++ b/indra/newview/llagentwearablesfetch.cpp @@ -48,7 +48,7 @@ public: virtual ~LLOrderMyOutfitsOnDestroy() { - if (LLApp::isExiting()) + if (!LLApp::isRunning()) { llwarns << "called during shutdown, skipping" << llendl; return; diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index 3430f265ae..2bf05d5907 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -839,6 +839,21 @@ LLInventoryCallbackManager::~LLInventoryCallbackManager() sInstance = NULL; } +//static +void LLInventoryCallbackManager::destroyClass() +{ + if (sInstance) + { + for (callback_map_t::iterator it = sInstance->mMap.begin(), end_it = sInstance->mMap.end(); it != end_it; ++it) + { + // drop LLPointer reference to callback + it->second = NULL; + } + sInstance->mMap.clear(); + } +} + + U32 LLInventoryCallbackManager::registerCB(LLPointer cb) { if (cb.isNull()) diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h index d0d3ad693e..dc3d3f7423 100644 --- a/indra/newview/llviewerinventory.h +++ b/indra/newview/llviewerinventory.h @@ -36,6 +36,7 @@ #include "llinventory.h" #include "llframetimer.h" #include "llwearable.h" +#include "llui.h" //for LLDestroyClass #include // boost::signals2::trackable @@ -299,8 +300,9 @@ private: // misc functions //void inventory_reliable_callback(void**, S32 status); -class LLInventoryCallbackManager +class LLInventoryCallbackManager : public LLDestroyClass { + friend LLDestroyClass; public: LLInventoryCallbackManager(); ~LLInventoryCallbackManager(); @@ -308,9 +310,12 @@ public: void fire(U32 callback_id, const LLUUID& item_id); U32 registerCB(LLPointer cb); private: - std::map > mMap; + typedef std::map > callback_map_t; + callback_map_t mMap; U32 mLastCallback; static LLInventoryCallbackManager *sInstance; + static void destroyClass(); + public: static bool is_instantiated() { return sInstance != NULL; } }; -- cgit v1.2.3 From 18224f89047ab580e4bcb41e29bcb18f815410b2 Mon Sep 17 00:00:00 2001 From: Richard Nelson Date: Fri, 25 Jun 2010 15:43:31 -0700 Subject: EXT-8079 - [crashhunters] Crash in LLImagePreviewAvatar::`scalar deleting destructor' reviewed by Palmer --- indra/newview/llvoavatar.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index 4259bb8e73..3d0fe9e0fe 100644 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -865,7 +865,7 @@ private: public: // Responsible for detecting the user's voice signal (and when the // user speaks, it puts a voice symbol over the avatar's head) and gesticulations - LLVoiceVisualizer* mVoiceVisualizer; + LLPointer mVoiceVisualizer; int mCurrentGesticulationLevel; //-------------------------------------------------------------------- -- cgit v1.2.3 From cd4c44fe7a0873d6845c40440fccb5755ba02c9f Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Fri, 2 Jul 2010 14:56:12 -0400 Subject: EXT-8198 Incorrect right-click options for library folders Only adding "--no options--" when right-click context menu is empty. Normal priority bug but rather annoying visually. --- indra/newview/llinventorybridge.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 96dba5717a..79a18115a7 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -2617,11 +2617,6 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) gInventory.addObserver(fetch); } } - else - { - mItems.push_back(std::string("--no options--")); - mDisabledItems.push_back(std::string("--no options--")); - } // Preemptively disable system folder removal if more than one item selected. if ((flags & FIRST_SELECTED_ITEM) == 0) @@ -2635,6 +2630,12 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) mDisabledItems.push_back(std::string("Share")); } + if (mItems.empty()) + { + mItems.push_back(std::string("--no options--")); + mDisabledItems.push_back(std::string("--no options--")); + } + hide_context_entries(menu, mItems, mDisabledItems); } -- cgit v1.2.3 From ae8d5132850783cab152d8b0cc3a431e249d6844 Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Fri, 2 Jul 2010 16:11:06 -0400 Subject: EXT-6701 FIXED Script Floater shows "MissingString..." when object is attached to invalid attachment index Added string entry. --- indra/newview/skins/default/xui/en/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index f7611b6833..1e8d0d2fe5 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2159,6 +2159,7 @@ Clears (deletes) the media and all params from the given face. HUD Bottom Left HUD Bottom HUD Bottom Right + Invalid Attachment Point Line [LINE], Column [COLUMN] -- cgit v1.2.3 From 907918c2deaf5880b5417c50c9e0927d4d9ff499 Mon Sep 17 00:00:00 2001 From: Paul Guslisty Date: Tue, 6 Jul 2010 14:34:12 +0300 Subject: EXT-8052 FIXED (Unnecessary selection border remains on 'People->Nearby' tab) - Hide selection border before showing no items comment Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/681/ --HG-- branch : product-engine --- indra/llui/llflatlistview.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp index b87851490d..6eb214cb93 100644 --- a/indra/llui/llflatlistview.cpp +++ b/indra/llui/llflatlistview.cpp @@ -1067,6 +1067,7 @@ void LLFlatListView::setNoItemsCommentVisible(bool visible) const mNoItemsCommentTextbox->setRect(comment_rect); */ } + mSelectedItemsBorder->setVisible(FALSE); mNoItemsCommentTextbox->setVisible(visible); } } @@ -1096,7 +1097,10 @@ void LLFlatListView::getValues(std::vector& values) const // virtual void LLFlatListView::onFocusReceived() { - mSelectedItemsBorder->setVisible(TRUE); + if (size()) + { + mSelectedItemsBorder->setVisible(TRUE); + } gEditMenuHandler = this; } // virtual -- cgit v1.2.3 From f92e50c54246add3afc752f86f072b23bdb2e5ad Mon Sep 17 00:00:00 2001 From: Paul Guslisty Date: Tue, 6 Jul 2010 14:34:43 +0300 Subject: EXT-8150 FIXED (+ button under \"add more\" of outfit editor is unclear) - Decreased flat list view and folder list view height - Deleted '+' button from bottom bar - Added 'Wear Item' button just at the bottom of the list Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/693/ --HG-- branch : product-engine --- .../skins/default/xui/en/panel_outfit_edit.xml | 32 ++++++++++------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml index 0fc945126b..adc38b966c 100644 --- a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml +++ b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml @@ -290,7 +290,7 @@ It is calculated as border_size + 2*UIResizeBarOverlap +