diff options
author | Jonathan "Geenz" Goodman <geenz@lindenlab.com> | 2025-05-22 13:02:42 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-22 13:02:42 -0400 |
commit | fe55c7815cde70c046467edfb651659af056cefc (patch) | |
tree | 77022d8d0348d5e99f54966193746fb1472d7ce2 | |
parent | 5b12428e65a5edf56409cf3fdc858827da7460f0 (diff) | |
parent | b62e7f96c235dd5754e329fcf13c0eea2352bbb1 (diff) |
Merge pull request #4135 from secondlife/geenz/mac-outfit-gallery-crash-fix
Fix null outfit gallery observer pointer
-rw-r--r-- | indra/newview/lloutfitgallery.cpp | 19 | ||||
-rw-r--r-- | indra/newview/lloutfitgallery.h | 3 |
2 files changed, 3 insertions, 19 deletions
diff --git a/indra/newview/lloutfitgallery.cpp b/indra/newview/lloutfitgallery.cpp index b84b0b3a8c..98b7d74cd2 100644 --- a/indra/newview/lloutfitgallery.cpp +++ b/indra/newview/lloutfitgallery.cpp @@ -69,7 +69,6 @@ const S32 GALLERY_ITEMS_PER_ROW_MIN = 2; LLOutfitGallery::LLOutfitGallery(const LLOutfitGallery::Params& p) : LLOutfitListBase(), - mOutfitsObserver(NULL), mScrollPanel(NULL), mGalleryPanel(NULL), mLastRowPanel(NULL), @@ -730,12 +729,6 @@ LLOutfitGallery::~LLOutfitGallery() { delete mOutfitGalleryMenu; - if (gInventory.containsObserver(mOutfitsObserver)) - { - gInventory.removeObserver(mOutfitsObserver); - } - delete mOutfitsObserver; - while (!mUnusedRowPanels.empty()) { LLPanel* panelp = mUnusedRowPanels.back(); @@ -797,7 +790,7 @@ void LLOutfitGallery::updateAddedCategory(LLUUID cat_id) { // Assume a subfolder that contains or will contain outfits, track it const LLUUID outfits = gInventory.findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS); - mOutfitsObserver->addCategory(cat_id, [this, outfits]() + mCategoriesObserver->addCategory(cat_id, [this, outfits]() { observerCallback(outfits); }); @@ -820,14 +813,8 @@ void LLOutfitGallery::updateAddedCategory(LLUUID cat_id) if (!outfit_category) return; - if (mOutfitsObserver == NULL) - { - mOutfitsObserver = new LLInventoryCategoriesObserver(); - gInventory.addObserver(mOutfitsObserver); - } - // Start observing changes in "My Outfits" category. - mOutfitsObserver->addCategory(cat_id, + mCategoriesObserver->addCategory(cat_id, boost::bind(&LLOutfitGallery::refreshOutfit, this, cat_id), true); outfit_category->fetch(); @@ -840,7 +827,7 @@ void LLOutfitGallery::updateRemovedCategory(LLUUID cat_id) if (outfits_iter != mOutfitMap.end()) { // 0. Remove category from observer. - mOutfitsObserver->removeCategory(cat_id); + mCategoriesObserver->removeCategory(cat_id); //const LLUUID& outfit_id = outfits_iter->first; LLOutfitGalleryItem* item = outfits_iter->second; diff --git a/indra/newview/lloutfitgallery.h b/indra/newview/lloutfitgallery.h index 541ea2f9d4..a2a5fe26eb 100644 --- a/indra/newview/lloutfitgallery.h +++ b/indra/newview/lloutfitgallery.h @@ -184,9 +184,6 @@ private: typedef item_num_map_t::value_type item_numb_map_value_t; item_num_map_t mItemIndexMap; std::map<S32, LLOutfitGalleryItem*> mIndexToItemMap; - - - LLInventoryCategoriesObserver* mOutfitsObserver; }; class LLOutfitGalleryContextMenu : public LLOutfitContextMenu { |