summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2015-02-27 16:29:46 +0000
committerMichael Meeks <michael.meeks@collabora.com>2015-04-09 22:26:09 +0100
commit562109b8357eb0690034844e097e0acafbdc39b6 (patch)
treec095810b0daf3b216d6802b02500d1191c1dbece /svx
parent292990396aefdae15b91f2df395da4b52d5e3f6a (diff)
vcl: ensure that VclBuilder is disposed before parent window.
Move VclBuilder to use VclPtr, link to documentation, and fix more double dispose issues. Change-Id: I4900b69dbb381bd7d6fda97f2a5e623bb58e0a9f
Diffstat (limited to 'svx')
-rw-r--r--svx/source/dialog/ctredlin.cxx4
-rw-r--r--svx/source/form/datanavi.cxx6
-rw-r--r--svx/source/sidebar/PanelLayout.cxx1
3 files changed, 11 insertions, 0 deletions
diff --git a/svx/source/dialog/ctredlin.cxx b/svx/source/dialog/ctredlin.cxx
index 48b50b005173..0d2e53039841 100644
--- a/svx/source/dialog/ctredlin.cxx
+++ b/svx/source/dialog/ctredlin.cxx
@@ -118,6 +118,7 @@ SvxRedlinTable::~SvxRedlinTable()
void SvxRedlinTable::dispose()
{
delete pCommentSearcher;
+ pCommentSearcher = NULL;
SvSimpleTable::dispose();
}
@@ -1084,7 +1085,10 @@ SvxAcceptChgCtr::~SvxAcceptChgCtr()
void SvxAcceptChgCtr::dispose()
{
delete pTPView;
+ pTPView = NULL;
delete pTPFilter;
+ pTPFilter = NULL;
+ disposeBuilder();
TabControl::dispose();
}
diff --git a/svx/source/form/datanavi.cxx b/svx/source/form/datanavi.cxx
index 148a747209de..c09637e7e59d 100644
--- a/svx/source/form/datanavi.cxx
+++ b/svx/source/form/datanavi.cxx
@@ -1419,17 +1419,23 @@ namespace svxform
aViewOpt.SetUserItem(CFGNAME_SHOWDETAILS,aAny);
delete m_pInstPage;
+ m_pInstPage = NULL;
delete m_pSubmissionPage;
+ m_pSubmissionPage = NULL;
delete m_pBindingPage;
+ m_pBindingPage = NULL;
sal_Int32 i, nCount = m_aPageList.size();
for ( i = 0; i < nCount; ++i )
delete m_aPageList[i];
+ m_aPageList.clear();
+
Reference< XFrameActionListener > xListener(
static_cast< XFrameActionListener* >( m_xDataListener.get() ), UNO_QUERY );
m_xFrame->removeFrameActionListener( xListener );
RemoveBroadcaster();
m_xDataListener.clear();
+ disposeBuilder();
vcl::Window::dispose();
}
diff --git a/svx/source/sidebar/PanelLayout.cxx b/svx/source/sidebar/PanelLayout.cxx
index 23934f6228f2..52247256a9b8 100644
--- a/svx/source/sidebar/PanelLayout.cxx
+++ b/svx/source/sidebar/PanelLayout.cxx
@@ -33,6 +33,7 @@ void PanelLayout::dispose()
{
m_bInClose = true;
m_aPanelLayoutIdle.Stop();
+ disposeBuilder();
Control::dispose();
}