summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui')
-rwxr-xr-xindra/llui/llfloater.cpp21
-rwxr-xr-xindra/llui/llkeywords.cpp3
-rwxr-xr-xindra/llui/lllayoutstack.cpp9
-rwxr-xr-xindra/llui/llpanel.cpp6
-rwxr-xr-xindra/llui/llpanel.h9
-rwxr-xr-xindra/llui/llscrolllistctrl.cpp2
-rwxr-xr-xindra/llui/llscrolllistitem.cpp1
-rwxr-xr-xindra/llui/lltabcontainer.cpp9
-rwxr-xr-xindra/llui/lltexteditor.cpp2
-rwxr-xr-xindra/llui/lluictrl.cpp24
-rwxr-xr-xindra/llui/llview.cpp15
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