summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2015-03-18 08:33:14 +0200
committerMichael Meeks <michael.meeks@collabora.com>2015-04-10 11:59:25 +0100
commit0556598b35eb6d81fdaff04520f14202660f0333 (patch)
tree2fb64309bbd8e519f25b1e55824bad5513754e91 /sfx2
parent7aa921cb53eedd0a107fbe9f75365adcce4d37d9 (diff)
vclwidget: check for calling delete on subclasses of vcl::Window
Change-Id: I7fb7cf919e3f46dd03a18b1cb95fa881915f9642
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/appl/sfxhelp.cxx6
-rw-r--r--sfx2/source/control/thumbnailview.cxx4
-rw-r--r--sfx2/source/dialog/infobar.cxx1
-rw-r--r--sfx2/source/doc/doctemplates.cxx4
-rw-r--r--sfx2/source/toolbox/tbxitem.cxx2
-rw-r--r--sfx2/source/view/viewprn.cxx4
6 files changed, 11 insertions, 10 deletions
diff --git a/sfx2/source/appl/sfxhelp.cxx b/sfx2/source/appl/sfxhelp.cxx
index 71e9ed519f8f..246248da3ae9 100644
--- a/sfx2/source/appl/sfxhelp.cxx
+++ b/sfx2/source/appl/sfxhelp.cxx
@@ -402,8 +402,8 @@ SfxHelpWindow_Impl* impl_createHelp(Reference< XFrame2 >& rHelpTask ,
// create all internal windows and sub frames ...
Reference< ::com::sun::star::awt::XWindow > xParentWindow = xHelpTask->getContainerWindow();
- vcl::Window* pParentWindow = VCLUnoHelper::GetWindow( xParentWindow );
- SfxHelpWindow_Impl* pHelpWindow = new SfxHelpWindow_Impl( xHelpTask, pParentWindow, WB_DOCKBORDER );
+ vcl::Window* pParentWindow = VCLUnoHelper::GetWindow( xParentWindow );
+ VclPtr<SfxHelpWindow_Impl> pHelpWindow = new SfxHelpWindow_Impl( xHelpTask, pParentWindow, WB_DOCKBORDER );
Reference< ::com::sun::star::awt::XWindow > xHelpWindow = VCLUnoHelper::GetInterface( pHelpWindow );
Reference< XFrame > xHelpContent;
@@ -429,7 +429,7 @@ SfxHelpWindow_Impl* impl_createHelp(Reference< XFrame2 >& rHelpTask ,
if (!xHelpContent.is())
{
- delete pHelpWindow;
+ pHelpWindow.disposeAndClear();
return NULL;
}
diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx
index f8fecff1387a..ad20376d39c4 100644
--- a/sfx2/source/control/thumbnailview.cxx
+++ b/sfx2/source/control/thumbnailview.cxx
@@ -276,7 +276,7 @@ void ThumbnailView::CalculateItemPositions (bool bScrollBarUsed)
Size aWinSize = GetOutputSizePixel();
size_t nItemCount = mFilteredItemList.size();
WinBits nStyle = GetStyle();
- ScrollBar* pDelScrBar = NULL;
+ VclPtr<ScrollBar> pDelScrBar;
// consider the scrolling
if ( nStyle & WB_VSCROLL )
@@ -441,7 +441,7 @@ void ThumbnailView::CalculateItemPositions (bool bScrollBarUsed)
}
// delete ScrollBar
- delete pDelScrBar;
+ pDelScrBar.disposeAndClear();
}
size_t ThumbnailView::ImplGetItem( const Point& rPos ) const
diff --git a/sfx2/source/dialog/infobar.cxx b/sfx2/source/dialog/infobar.cxx
index b7b9f73eeac5..88377b3d0a56 100644
--- a/sfx2/source/dialog/infobar.cxx
+++ b/sfx2/source/dialog/infobar.cxx
@@ -286,6 +286,7 @@ void SfxInfoBarContainerWindow::removeInfoBar(SfxInfoBarWindow* pInfoBar)
break;
}
}
+ pInfoBar->disposeOnce();
long nY = 0;
for (auto it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it)
diff --git a/sfx2/source/doc/doctemplates.cxx b/sfx2/source/doc/doctemplates.cxx
index 84a3a1c1e15b..fa3d548a4aa8 100644
--- a/sfx2/source/doc/doctemplates.cxx
+++ b/sfx2/source/doc/doctemplates.cxx
@@ -471,7 +471,7 @@ void SfxDocTplService_Impl::init_Impl()
aGuard.clear();
SolarMutexClearableGuard aSolarGuard;
- WaitWindow_Impl* pWin = new WaitWindow_Impl();
+ VclPtr<WaitWindow_Impl> pWin = new WaitWindow_Impl();
aSolarGuard.clear();
::osl::ClearableMutexGuard anotherGuard( maMutex );
@@ -481,7 +481,7 @@ void SfxDocTplService_Impl::init_Impl()
anotherGuard.clear();
SolarMutexGuard aSecondSolarGuard;
- delete pWin;
+ pWin.disposeAndClear();
}
else if ( needsUpdate() )
// the UI should be shown only on the first update
diff --git a/sfx2/source/toolbox/tbxitem.cxx b/sfx2/source/toolbox/tbxitem.cxx
index c849ac7b3c90..09ed6b29ae88 100644
--- a/sfx2/source/toolbox/tbxitem.cxx
+++ b/sfx2/source/toolbox/tbxitem.cxx
@@ -1384,7 +1384,7 @@ void SfxPopupWindow::Delete()
{
if ( m_aDeleteLink.IsSet() )
m_aDeleteLink.Call( this );
- delete this;
+ VclPtr<SfxPopupWindow>(this).disposeAndClear();
}
diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx
index 4b6e56dabd43..739ce7d135a4 100644
--- a/sfx2/source/view/viewprn.cxx
+++ b/sfx2/source/view/viewprn.cxx
@@ -820,7 +820,7 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq )
nDialogRet = 0;
// execute PrinterSetupDialog
- PrinterSetupDialog* pPrintSetupDlg = new PrinterSetupDialog( GetWindow() );
+ VclPtr<PrinterSetupDialog> pPrintSetupDlg = new PrinterSetupDialog( GetWindow() );
SfxDialogExecutor_Impl* pExecutor = 0;
if (pImp->m_bHasPrintOptions && HasPrintOptionsPage())
@@ -847,7 +847,7 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq )
}
}
- DELETEZ( pPrintSetupDlg );
+ pPrintSetupDlg.disposeAndClear();
delete pExecutor;
// no recording of PrinterSetup except printer name (is printer dependent)