summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2015-02-27 15:39:58 +0000
committerMichael Meeks <michael.meeks@collabora.com>2015-04-09 22:24:38 +0100
commit292990396aefdae15b91f2df395da4b52d5e3f6a (patch)
treedca1fd853d0dcfff0cfe929f7dda8a3c785f9efa /sw
parent7fd0cd651dbca1df4ea94b949e9e8e5b0fab1830 (diff)
sw: more double dispose work.
Change-Id: I746623d14a96bb1b2756e49da4d41adf9dbc55ca
Diffstat (limited to 'sw')
-rw-r--r--sw/source/uibase/docvw/FrameControlsManager.cxx5
-rw-r--r--sw/source/uibase/docvw/PageBreakWin.cxx6
-rw-r--r--sw/source/uibase/docvw/SidebarWin.cxx4
-rw-r--r--sw/source/uibase/docvw/edtwin.cxx13
-rw-r--r--sw/source/uibase/inc/FrameControlsManager.hxx3
5 files changed, 29 insertions, 2 deletions
diff --git a/sw/source/uibase/docvw/FrameControlsManager.cxx b/sw/source/uibase/docvw/FrameControlsManager.cxx
index 7cd0e7f53319..e16809626414 100644
--- a/sw/source/uibase/docvw/FrameControlsManager.cxx
+++ b/sw/source/uibase/docvw/FrameControlsManager.cxx
@@ -34,6 +34,11 @@ SwFrameControlsManager::SwFrameControlsManager( const SwFrameControlsManager& rC
{
}
+void SwFrameControlsManager::dispose()
+{
+ m_aControls.clear();
+}
+
const SwFrameControlsManager& SwFrameControlsManager::operator=( const SwFrameControlsManager& rCopy )
{
m_pEditWin = rCopy.m_pEditWin;
diff --git a/sw/source/uibase/docvw/PageBreakWin.cxx b/sw/source/uibase/docvw/PageBreakWin.cxx
index d13b4b130e81..01d95bab3a76 100644
--- a/sw/source/uibase/docvw/PageBreakWin.cxx
+++ b/sw/source/uibase/docvw/PageBreakWin.cxx
@@ -124,9 +124,13 @@ void SwPageBreakWin::dispose()
m_bDestroyed = true;
m_aFadeTimer.Stop();
- delete m_pPopupMenu;
delete m_pLine;
+ m_pLine = NULL;
+ delete m_pPopupMenu;
+ m_pPopupMenu = NULL;
delete m_pMousePt;
+ m_pMousePt = NULL;
+
MenuButton::dispose();
}
diff --git a/sw/source/uibase/docvw/SidebarWin.cxx b/sw/source/uibase/docvw/SidebarWin.cxx
index a7a7371ccb8b..21e6404427ba 100644
--- a/sw/source/uibase/docvw/SidebarWin.cxx
+++ b/sw/source/uibase/docvw/SidebarWin.cxx
@@ -142,6 +142,9 @@ SwSidebarWin::~SwSidebarWin()
void SwSidebarWin::dispose()
{
+ if (IsDisposed())
+ return;
+
mrMgr.DisconnectSidebarWinFromFrm( *(mrSidebarItem.maLayoutInfo.mpAnchorFrm),
*this );
@@ -206,6 +209,7 @@ void SwSidebarWin::dispose()
if (mnEventId)
Application::RemoveUserEvent( mnEventId );
+
vcl::Window::dispose();
}
diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx
index 7502abf0d600..20a43c01c879 100644
--- a/sw/source/uibase/docvw/edtwin.cxx
+++ b/sw/source/uibase/docvw/edtwin.cxx
@@ -4974,16 +4974,29 @@ SwEditWin::~SwEditWin()
void SwEditWin::dispose()
{
m_aKeyInputTimer.Stop();
+
delete m_pShadCrsr;
+ m_pShadCrsr = NULL;
+
delete m_pRowColumnSelectionStart;
+ m_pRowColumnSelectionStart = NULL;
+
if( m_pQuickHlpData->m_bIsDisplayed && m_rView.GetWrtShellPtr() )
m_pQuickHlpData->Stop( m_rView.GetWrtShell() );
g_bExecuteDrag = false;
delete m_pApplyTempl;
+ m_pApplyTempl = NULL;
+
m_rView.SetDrawFuncPtr(NULL);
delete m_pUserMarker;
+ m_pUserMarker = NULL;
+
delete m_pAnchorMarker;
+ m_pAnchorMarker = NULL;
+
+ m_aFrameControlsManager.dispose();
+
vcl::Window::dispose();
}
diff --git a/sw/source/uibase/inc/FrameControlsManager.hxx b/sw/source/uibase/inc/FrameControlsManager.hxx
index 75585ea8fe0b..42584a1c1da3 100644
--- a/sw/source/uibase/inc/FrameControlsManager.hxx
+++ b/sw/source/uibase/inc/FrameControlsManager.hxx
@@ -35,7 +35,8 @@ class SwFrameControlsManager
public:
SwFrameControlsManager( SwEditWin* pEditWin );
- ~SwFrameControlsManager( );
+ ~SwFrameControlsManager();
+ void dispose();
SwFrameControlsManager( const SwFrameControlsManager& rCopy );
const SwFrameControlsManager& operator=( const SwFrameControlsManager& rCopy );