[Libreoffice-commits] core.git: Branch 'feature/vclref' - reportdesign/source sw/source vcl/source

Michael Meeks michael.meeks at collabora.com
Fri Feb 27 07:35:47 PST 2015


 reportdesign/source/ui/report/DesignView.cxx    |    2 +-
 sw/source/uibase/docvw/FrameControlsManager.cxx |    5 +++++
 sw/source/uibase/docvw/PageBreakWin.cxx         |    6 +++++-
 sw/source/uibase/docvw/SidebarWin.cxx           |    4 ++++
 sw/source/uibase/docvw/edtwin.cxx               |   14 ++++++++++++++
 sw/source/uibase/inc/FrameControlsManager.hxx   |    3 ++-
 vcl/source/window/window.cxx                    |    2 ++
 7 files changed, 33 insertions(+), 3 deletions(-)

New commits:
commit cfec0497e1cd98fb355464eb6466708b13e0414e
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Fri Feb 27 15:39:58 2015 +0000

    sw: more double dispose work.
    
    Change-Id: I746623d14a96bb1b2756e49da4d41adf9dbc55ca

diff --git a/reportdesign/source/ui/report/DesignView.cxx b/reportdesign/source/ui/report/DesignView.cxx
index b5fc1f8..f7d865f 100644
--- a/reportdesign/source/ui/report/DesignView.cxx
+++ b/reportdesign/source/ui/report/DesignView.cxx
@@ -206,7 +206,7 @@ bool ODesignView::PreNotify( NotifyEvent& rNEvt )
                     const vcl::KeyCode& rCode = pKeyEvent->GetKeyCode();
                     util::URL aUrl;
                     aUrl.Complete = m_pAccel->findCommand(svt::AcceleratorExecute::st_VCLKey2AWTKey(rCode));
-                    if ( aUrl.Complete.isEmpty() || !m_rController.isCommandEnabled( aUrl.Complete ) )
+                    if ( aUrl.Complete.isEmpty() || !m_xController->isCommandEnabled( aUrl.Complete ) )
                         nRet = false;
                 }
             }
diff --git a/sw/source/uibase/docvw/FrameControlsManager.cxx b/sw/source/uibase/docvw/FrameControlsManager.cxx
index 7cd0e7f..e168096 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 6c8d3d3..a8361ff 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 c540473..58a943a 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 819c2bc..24575a3 100644
--- a/sw/source/uibase/docvw/edtwin.cxx
+++ b/sw/source/uibase/docvw/edtwin.cxx
@@ -5023,16 +5023,30 @@ 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() );
+
     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 75585ea..42584a1 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 );
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index c7ef813..2dd3354 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -2530,6 +2530,8 @@ void Window::GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder,
 
 void Window::Enable( bool bEnable, bool bChild )
 {
+    if ( IsDisposed() )
+        return;
 
     if ( !bEnable )
     {


More information about the Libreoffice-commits mailing list