diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2015-02-27 15:39:58 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2015-04-09 22:24:38 +0100 |
commit | 292990396aefdae15b91f2df395da4b52d5e3f6a (patch) | |
tree | dca1fd853d0dcfff0cfe929f7dda8a3c785f9efa /sw | |
parent | 7fd0cd651dbca1df4ea94b949e9e8e5b0fab1830 (diff) |
sw: more double dispose work.
Change-Id: I746623d14a96bb1b2756e49da4d41adf9dbc55ca
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/uibase/docvw/FrameControlsManager.cxx | 5 | ||||
-rw-r--r-- | sw/source/uibase/docvw/PageBreakWin.cxx | 6 | ||||
-rw-r--r-- | sw/source/uibase/docvw/SidebarWin.cxx | 4 | ||||
-rw-r--r-- | sw/source/uibase/docvw/edtwin.cxx | 13 | ||||
-rw-r--r-- | sw/source/uibase/inc/FrameControlsManager.hxx | 3 |
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 ); |