From fc8c282e99450ae240ca3d16bb74e1d4ab541497 Mon Sep 17 00:00:00 2001 From: Michael Meeks Date: Thu, 7 May 2015 14:35:42 +0100 Subject: tdf#91127 - get SfxTabPage creation function ref-counting right. Change-Id: I7c730cf311900fe14a09081dd986f17d9b89e77f --- sfx2/source/appl/childwin.cxx | 2 ++ sfx2/source/dialog/tabdlg.cxx | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sfx2/source/appl/childwin.cxx b/sfx2/source/appl/childwin.cxx index e1f2ecd40809..a735b7297d29 100644 --- a/sfx2/source/appl/childwin.cxx +++ b/sfx2/source/appl/childwin.cxx @@ -198,8 +198,10 @@ void SfxChildWindow::Destroy() SfxChildWindow::~SfxChildWindow() { delete pContext; + pContext = NULL; pWindow.disposeAndClear(); delete pImp; + pImp = NULL; } diff --git a/sfx2/source/dialog/tabdlg.cxx b/sfx2/source/dialog/tabdlg.cxx index 8684d5530ef9..3cf586996528 100644 --- a/sfx2/source/dialog/tabdlg.cxx +++ b/sfx2/source/dialog/tabdlg.cxx @@ -178,6 +178,7 @@ SfxTabPage::~SfxTabPage() void SfxTabPage::dispose() { delete pImpl; + pImpl = NULL; TabPage::dispose(); } @@ -401,13 +402,19 @@ void SfxTabDialog::dispose() pDataObject->pTabPage.disposeAndClear(); } delete pDataObject; + pDataObject = NULL; } delete pImpl; + pImpl = NULL; delete pSet; + pSet = NULL; delete pOutSet; + pOutSet = NULL; delete pExampleSet; + pExampleSet = NULL; delete [] pRanges; + pRanges = NULL; if (m_bOwnsBaseFmtBtn) m_pBaseFmtBtn.disposeAndClear(); @@ -429,6 +436,7 @@ void SfxTabDialog::dispose() m_pResetBtn.clear(); m_pBaseFmtBtn.clear(); m_pActionArea.clear(); + TabDialog::dispose(); } @@ -1109,7 +1117,7 @@ IMPL_LINK( SfxTabDialog, ActivatePageHdl, TabControl *, pTabCtrl ) SfxGetpApp(); // Tab Page schon da? - SfxTabPage* pTabPage = dynamic_cast (pTabCtrl->GetTabPage( nId )); + VclPtr pTabPage = dynamic_cast (pTabCtrl->GetTabPage( nId )); Data_Impl* pDataObject = Find( pImpl->aData, nId ); //UUUU fallback to 1st page when requested one does not exist -- cgit v1.2.3