diff options
author | simon <none@none> | 2014-02-21 11:18:12 -0800 |
---|---|---|
committer | simon <none@none> | 2014-02-21 11:18:12 -0800 |
commit | ea944fd58f6fcaf29a939ed10e9fd5e07b9fb923 (patch) | |
tree | d18a3d5fc4f3220fc6d36d24e8cb1b05630e1f9f /indra/llui | |
parent | a23fc01c7b12299297124f4b5b6ad4e7a8145c00 (diff) | |
parent | 76913530ed04798536e8469dbeaea9e512d122aa (diff) |
Merge downstream code
Diffstat (limited to 'indra/llui')
-rwxr-xr-x | indra/llui/llfloater.cpp | 21 | ||||
-rwxr-xr-x | indra/llui/llkeywords.cpp | 3 | ||||
-rwxr-xr-x | indra/llui/lllayoutstack.cpp | 9 | ||||
-rwxr-xr-x | indra/llui/llpanel.cpp | 6 | ||||
-rwxr-xr-x | indra/llui/llpanel.h | 9 | ||||
-rwxr-xr-x | indra/llui/llscrolllistctrl.cpp | 2 | ||||
-rwxr-xr-x | indra/llui/llscrolllistitem.cpp | 1 | ||||
-rwxr-xr-x | indra/llui/lltabcontainer.cpp | 9 | ||||
-rwxr-xr-x | indra/llui/lltexteditor.cpp | 2 | ||||
-rwxr-xr-x | indra/llui/lluictrl.cpp | 24 | ||||
-rwxr-xr-x | indra/llui/llview.cpp | 15 |
11 files changed, 93 insertions, 8 deletions
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index acf38afe32..96964b528e 100755 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -505,31 +505,48 @@ void LLFloater::destroy() // virtual LLFloater::~LLFloater() { + LL_INFOS("Baker") << "[3555] ~LLFloater() -------------------------------------------------" << LL_ENDL; + LLFloaterReg::removeInstance(mInstanceName, mKey); + LL_INFOS("Baker") << "[3555] ~LLFloater() - Does child have keyboard focus?" << LL_ENDL; if( gFocusMgr.childHasKeyboardFocus(this)) { - // Just in case we might still have focus here, release it. - releaseFocus(); + LL_INFOS("Baker") << "[3555] ~LLFloater() - Yes, release the focus." << LL_ENDL; + // Just in case we might still have focus here, release it. + releaseFocus(); } + LL_INFOS("Baker") << "[3555] ~LLFloater() - Setting minimized to false" << LL_ENDL; // This is important so that floaters with persistent rects (i.e., those // created with rect control rather than an LLRect) are restored in their // correct, non-minimized positions. setMinimized( FALSE ); + LL_INFOS("Baker") << "[3555] ~LLFloater() - Deleting the drag handle." << LL_ENDL; delete mDragHandle; for (S32 i = 0; i < 4; i++) { + LL_INFOS("Baker") << "[3555] ~LLFloater() - Deleting mResizeBar[" << i << "]" << LL_ENDL; delete mResizeBar[i]; + + LL_INFOS("Baker") << "[3555] ~LLFloater() - Deleting mResizeHandle[" << i << "]" << LL_ENDL; delete mResizeHandle[i]; } + LL_INFOS("Baker") << "[3555] ~LLFloater() - Setting visibility (false)" << LL_ENDL; setVisible(false); // We're not visible if we're destroyed + + LL_INFOS("Baker") << "[3555] ~LLFloater() - Storing visibility control" << LL_ENDL; storeVisibilityControl(); + + LL_INFOS("Baker") << "[3555] ~LLFloater() - Storing dock state control" << LL_ENDL; storeDockStateControl(); + LL_INFOS("Baker") << "[3555] ~LLFloater() - Delete mMinimizeSignal" << LL_ENDL; delete mMinimizeSignal; + + LL_INFOS("Baker") << "[3555] Exiting ~LLFloater()" << LL_ENDL; } void LLFloater::storeRectControl() diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp index 26d27d1f34..39153977bf 100755 --- a/indra/llui/llkeywords.cpp +++ b/indra/llui/llkeywords.cpp @@ -76,8 +76,11 @@ inline BOOL LLKeywordToken::isTail(const llwchar* s) const LLKeywords::~LLKeywords() { std::for_each(mWordTokenMap.begin(), mWordTokenMap.end(), DeletePairedPointer()); + mWordTokenMap.clear(); std::for_each(mLineTokenList.begin(), mLineTokenList.end(), DeletePointer()); + mLineTokenList.clear(); std::for_each(mDelimiterTokenList.begin(), mDelimiterTokenList.end(), DeletePointer()); + mDelimiterTokenList.clear(); } BOOL LLKeywords::loadFromFile( const std::string& filename ) diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp index c89c0203b4..953025abbf 100755 --- a/indra/llui/lllayoutstack.cpp +++ b/indra/llui/lllayoutstack.cpp @@ -245,9 +245,18 @@ LLLayoutStack::LLLayoutStack(const LLLayoutStack::Params& p) LLLayoutStack::~LLLayoutStack() { + LL_INFOS("Baker") << "[3555] ~LLLayoutStack() -------------------------------------------------" << LL_ENDL; + + LL_INFOS("Baker") << "[3555] ~LLLayoutStack() - Copying panel pointers." << LL_ENDL; e_panel_list_t panels = mPanels; // copy list of panel pointers + + LL_INFOS("Baker") << "[3555] ~LLLayoutStack() - Clearing mPanels." << LL_ENDL; mPanels.clear(); // clear so that removeChild() calls don't cause trouble + + LL_INFOS("Baker") << "[3555] ~LLLayoutStack() - Deleing copied panel pointers." << LL_ENDL; std::for_each(panels.begin(), panels.end(), DeletePointer()); + + LL_INFOS("Baker") << "[3555] Exiting ~LLLayoutStack()" << LL_ENDL; } void LLLayoutStack::draw() diff --git a/indra/llui/llpanel.cpp b/indra/llui/llpanel.cpp index 67472ad166..3ee93150f5 100755 --- a/indra/llui/llpanel.cpp +++ b/indra/llui/llpanel.cpp @@ -126,7 +126,13 @@ LLPanel::LLPanel(const LLPanel::Params& p) LLPanel::~LLPanel() { + LL_INFOS("Baker") << "[3555] ~LLPanel() -------------------------------------------------" << LL_ENDL; + LL_INFOS("Baker") << "[3555] ~LLPanel() - Deleting mVisibleSignal..." << LL_ENDL; + delete mVisibleSignal; + + LL_INFOS("Baker") << "[3555] ~LLPanel() - deleted." << LL_ENDL; + LL_INFOS("Baker") << "[3555] Exiting ~LLPanel()" << LL_ENDL; } // virtual diff --git a/indra/llui/llpanel.h b/indra/llui/llpanel.h index e63b41f97c..17b9b91ba7 100755 --- a/indra/llui/llpanel.h +++ b/indra/llui/llpanel.h @@ -330,17 +330,16 @@ private: // local static instance for registering a particular panel class template<typename T> -class LLRegisterPanelClassWrapper -: public LLRegisterPanelClass + class LLPanelInjector { public: - // reigister with either the provided builder, or the generic templated builder - LLRegisterPanelClassWrapper(const std::string& tag); + // register with either the provided builder, or the generic templated builder + LLPanelInjector(const std::string& tag); }; template<typename T> -LLRegisterPanelClassWrapper<T>::LLRegisterPanelClassWrapper(const std::string& tag) + LLPanelInjector<T>::LLPanelInjector(const std::string& tag) { LLRegisterPanelClass::instance().addPanelClass(tag,&LLRegisterPanelClass::defaultPanelClassBuilder<T>); } diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp index 594e1e150b..d4bbea0f8e 100755 --- a/indra/llui/llscrolllistctrl.cpp +++ b/indra/llui/llscrolllistctrl.cpp @@ -320,7 +320,9 @@ LLScrollListCtrl::~LLScrollListCtrl() delete mSortCallback; std::for_each(mItemList.begin(), mItemList.end(), DeletePointer()); + mItemList.clear(); std::for_each(mColumns.begin(), mColumns.end(), DeletePairedPointer()); + mColumns.clear(); } diff --git a/indra/llui/llscrolllistitem.cpp b/indra/llui/llscrolllistitem.cpp index 5a1e96ab03..cc7f42e49a 100755 --- a/indra/llui/llscrolllistitem.cpp +++ b/indra/llui/llscrolllistitem.cpp @@ -50,6 +50,7 @@ LLScrollListItem::LLScrollListItem( const Params& p ) LLScrollListItem::~LLScrollListItem() { std::for_each(mColumns.begin(), mColumns.end(), DeletePointer()); + mColumns.clear(); } void LLScrollListItem::addColumn(const LLScrollListCell::Params& p) diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp index 76ba53ec32..203bf5b50e 100755 --- a/indra/llui/lltabcontainer.cpp +++ b/indra/llui/lltabcontainer.cpp @@ -280,7 +280,16 @@ LLTabContainer::LLTabContainer(const LLTabContainer::Params& p) LLTabContainer::~LLTabContainer() { + LL_INFOS("Baker") << "[3555] ~LLTabContainer() -------------------------------------------------" << LL_ENDL; + LL_INFOS("Baker") << "[3555] ~LLTabContainer() - Deleting mTabList contents..." << LL_ENDL; + std::for_each(mTabList.begin(), mTabList.end(), DeletePointer()); + + LL_INFOS("Baker") << "[3555] ~LLTabContainer() - Clearing mTabList" << LL_ENDL; + mTabList.clear(); + + LL_INFOS("Baker") << "[3555] ~LLTabContainer() - done." << LL_ENDL; + LL_INFOS("Baker") << "[3555] Exiting ~LLTabContainer()" << LL_ENDL; } //virtual diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 7896fcef95..3bac15c5d4 100755 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -310,7 +310,7 @@ LLTextEditor::~LLTextEditor() // Scrollbar is deleted by LLView std::for_each(mUndoStack.begin(), mUndoStack.end(), DeletePointer()); - + mUndoStack.clear(); // context menu is owned by menu holder, not us //delete mContextMenu; } diff --git a/indra/llui/lluictrl.cpp b/indra/llui/lluictrl.cpp index 1722bf27bd..801d39ac70 100755 --- a/indra/llui/lluictrl.cpp +++ b/indra/llui/lluictrl.cpp @@ -207,23 +207,47 @@ void LLUICtrl::initFromParams(const Params& p) LLUICtrl::~LLUICtrl() { + LL_INFOS("Baker") << "[3555] ~LLUICtrl() -------------------------------------------------" << LL_ENDL; + gFocusMgr.releaseFocusIfNeeded( this ); // calls onCommit() + LL_INFOS("Baker") << "[3555] ~LLUICtrl() - Released focus if needed." << LL_ENDL; + if( gFocusMgr.getTopCtrl() == this ) { + llinfos << "[3555] ~LLUICtrl() - UI Control holding top ctrl deleted: " << getName() << ". Top view removed." << llendl; llwarns << "UI Control holding top ctrl deleted: " << getName() << ". Top view removed." << llendl; gFocusMgr.removeTopCtrlWithoutCallback( this ); } + LL_INFOS("Baker") << "[3555] ~LLUICtrl() - deleting mCommitSignal" << LL_ENDL; delete mCommitSignal; + + LL_INFOS("Baker") << "[3555] ~LLUICtrl() - deleting mValidateSignal" << LL_ENDL; delete mValidateSignal; + + LL_INFOS("Baker") << "[3555] ~LLUICtrl() - deleting mMouseEnterSignal" << LL_ENDL; delete mMouseEnterSignal; + + LL_INFOS("Baker") << "[3555] ~LLUICtrl() - deleting mMouseLeaveSignal" << LL_ENDL; delete mMouseLeaveSignal; + + LL_INFOS("Baker") << "[3555] ~LLUICtrl() - deleting mMouseDownSignal" << LL_ENDL; delete mMouseDownSignal; + + LL_INFOS("Baker") << "[3555] ~LLUICtrl() - deleting mMouseUpSignal" << LL_ENDL; delete mMouseUpSignal; + + LL_INFOS("Baker") << "[3555] ~LLUICtrl() - deleting mRightMouseDownSignal" << LL_ENDL; delete mRightMouseDownSignal; + + LL_INFOS("Baker") << "[3555] ~LLUICtrl() - deleting mRightMouseUpSignal" << LL_ENDL; delete mRightMouseUpSignal; + + LL_INFOS("Baker") << "[3555] ~LLUICtrl() - deleting mDoubleClickSignal" << LL_ENDL; delete mDoubleClickSignal; + + LL_INFOS("Baker") << "[3555] Exiting ~LLUICtrl()" << LL_ENDL; } void default_commit_handler(LLUICtrl* ctrl, const LLSD& param) diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index 5ee2169b66..daa87e8334 100755 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -150,10 +150,16 @@ LLView::LLView(const LLView::Params& p) LLView::~LLView() { + LL_INFOS("Baker") << "[3555] ~LLView -------------------------------------------------" << LL_ENDL; + + LL_INFOS("Baker") << "[3555] ~LLView() - Dirtying view rect" << LL_ENDL; dirtyRect(); //llinfos << "Deleting view " << mName << ":" << (void*) this << llendl; + LL_INFOS("Baker") << "[3555] ~LLView() - Deleting view " << mName << ":" << (void*) this << LL_ENDL; if (LLView::sIsDrawing) { + LL_INFOS("Baker") << "[3555] ~LLView() - Deleting view " << mName << " during UI draw() phase" << LL_ENDL; + lldebugs << "Deleting view " << mName << " during UI draw() phase" << llendl; } // llassert(LLView::sIsDrawing == FALSE); @@ -163,21 +169,30 @@ LLView::~LLView() if( hasMouseCapture() ) { //llwarns << "View holding mouse capture deleted: " << getName() << ". Mouse capture removed." << llendl; + LL_INFOS("Baker") << "[3555] ~LLView() - View holding mouse capture deleted: " << getName() << ". Mouse capture removed." << LL_ENDL; gFocusMgr.removeMouseCaptureWithoutCallback( this ); } + LL_INFOS("Baker") << "[3555] ~LLView() - Deleting all children..." << LL_ENDL; deleteAllChildren(); + LL_INFOS("Baker") << "[3555] ~LLView() - done." << LL_ENDL; + if (mParentView != NULL) { + LL_INFOS("Baker") << "[3555] ~LLView() - Removing this child view" << LL_ENDL; mParentView->removeChild(this); } if (mDefaultWidgets) { + LL_INFOS("Baker") << "[3555] ~LLView() - Deleting default widgets" << LL_ENDL; + delete mDefaultWidgets; mDefaultWidgets = NULL; } + + LL_INFOS("Baker") << "[3555] Exiting ~LLView()" << LL_ENDL; } // virtual |