diff options
author | Noel Grandin <noel@peralex.com> | 2015-03-18 08:33:14 +0200 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2015-04-10 11:59:25 +0100 |
commit | 0556598b35eb6d81fdaff04520f14202660f0333 (patch) | |
tree | 2fb64309bbd8e519f25b1e55824bad5513754e91 /sfx2 | |
parent | 7aa921cb53eedd0a107fbe9f75365adcce4d37d9 (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.cxx | 6 | ||||
-rw-r--r-- | sfx2/source/control/thumbnailview.cxx | 4 | ||||
-rw-r--r-- | sfx2/source/dialog/infobar.cxx | 1 | ||||
-rw-r--r-- | sfx2/source/doc/doctemplates.cxx | 4 | ||||
-rw-r--r-- | sfx2/source/toolbox/tbxitem.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/view/viewprn.cxx | 4 |
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) |