summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
authorTakeshi Abe <tabe@fixedpoint.jp>2014-04-15 15:08:24 +0900
committerTakeshi Abe <tabe@fixedpoint.jp>2014-04-15 16:12:31 +0900
commiteb4c43aa61c08f88acfe5dd1499de0f8dbda4b8b (patch)
tree4b80faf3c545dceb999eee438a0ed6469049cbe9 /framework
parent1ac4eb946680ed738cb26be4d43f9716ba8feb17 (diff)
Avoid possible memory leaks in case of exceptions
Change-Id: Ie07c6c9989da444eb6052691696e95b808c23fb0
Diffstat (limited to 'framework')
-rw-r--r--framework/source/uiconfiguration/imagemanagerimpl.cxx8
-rw-r--r--framework/source/uielement/controlmenucontroller.cxx9
-rw-r--r--framework/source/uielement/fontsizemenucontroller.cxx16
-rw-r--r--framework/source/uielement/newmenucontroller.cxx9
4 files changed, 17 insertions, 25 deletions
diff --git a/framework/source/uiconfiguration/imagemanagerimpl.cxx b/framework/source/uiconfiguration/imagemanagerimpl.cxx
index 495da8d36301..9fe506ba1b6a 100644
--- a/framework/source/uiconfiguration/imagemanagerimpl.cxx
+++ b/framework/source/uiconfiguration/imagemanagerimpl.cxx
@@ -44,6 +44,7 @@
#include <vcl/pngwrite.hxx>
#include <rtl/instance.hxx>
#include <svtools/miscopt.hxx>
+#include <boost/scoped_ptr.hpp>
using ::com::sun::star::uno::Sequence;
using ::com::sun::star::uno::XInterface;
@@ -495,14 +496,12 @@ bool ImageManagerImpl::implts_loadUserImages(
if ( xBitmapStream.is() )
{
- SvStream* pSvStream( 0 );
BitmapEx aUserBitmap;
{
- pSvStream = utl::UcbStreamHelper::CreateStream( xBitmapStream );
+ boost::scoped_ptr<SvStream> pSvStream(utl::UcbStreamHelper::CreateStream( xBitmapStream ));
vcl::PNGReader aPngReader( *pSvStream );
aUserBitmap = aPngReader.Read();
}
- delete pSvStream;
// Delete old image list and create a new one from the read bitmap
delete m_pUserImageList[nImageType];
@@ -578,12 +577,11 @@ bool ImageManagerImpl::implts_storeUserImages(
ElementModes::WRITE|ElementModes::TRUNCATE );
if ( xBitmapStream.is() )
{
- SvStream* pSvStream = utl::UcbStreamHelper::CreateStream( xBitmapStream );
{
+ boost::scoped_ptr<SvStream> pSvStream(utl::UcbStreamHelper::CreateStream( xBitmapStream ));
vcl::PNGWriter aPngWriter( pImageList->GetAsHorizontalStrip() );
aPngWriter.Write( *pSvStream );
}
- delete pSvStream;
// Commit user bitmaps storage
xTransaction = uno::Reference< XTransactedObject >( xUserBitmapsStorage, UNO_QUERY );
diff --git a/framework/source/uielement/controlmenucontroller.cxx b/framework/source/uielement/controlmenucontroller.cxx
index 1c1840bbf4e1..d7446a11f369 100644
--- a/framework/source/uielement/controlmenucontroller.cxx
+++ b/framework/source/uielement/controlmenucontroller.cxx
@@ -42,6 +42,7 @@
#include <svtools/menuoptions.hxx>
#include <svtools/popupmenucontrollerbase.hxx>
#include <osl/mutex.hxx>
+#include <boost/scoped_ptr.hpp>
// Copied from svx
// Function-Id's
@@ -256,7 +257,7 @@ ControlMenuController::~ControlMenuController()
// private function
void ControlMenuController::updateImagesPopupMenu( PopupMenu* pPopupMenu )
{
- ResMgr* pResMgr = ResMgr::CreateResMgr("svx", Application::GetSettings().GetUILanguageTag());
+ boost::scoped_ptr<ResMgr> pResMgr(ResMgr::CreateResMgr("svx", Application::GetSettings().GetUILanguageTag()));
ResId aResId( RID_SVXIMGLIST_FMEXPL, *pResMgr );
aResId.SetRT( RSC_IMAGELIST );
@@ -272,8 +273,6 @@ void ControlMenuController::updateImagesPopupMenu( PopupMenu* pPopupMenu )
pPopupMenu->SetItemImage( nConvertSlots[i], Image() );
}
}
-
- delete pResMgr;
}
// private function
@@ -404,7 +403,7 @@ void ControlMenuController::impl_setPopupMenu()
{
if ( m_pResPopupMenu == 0 )
{
- ResMgr* pResMgr = ResMgr::CreateResMgr("svx", Application::GetSettings().GetUILanguageTag());
+ boost::scoped_ptr<ResMgr> pResMgr(ResMgr::CreateResMgr("svx", Application::GetSettings().GetUILanguageTag()));
if ( pResMgr )
{
ResId aResId( RID_FMSHELL_CONVERSIONMENU, *pResMgr );
@@ -414,8 +413,6 @@ void ControlMenuController::impl_setPopupMenu()
m_pResPopupMenu = new PopupMenu( aResId );
updateImagesPopupMenu( m_pResPopupMenu );
}
-
- delete pResMgr;
}
} // if ( m_pResPopupMenu == 0 )
}
diff --git a/framework/source/uielement/fontsizemenucontroller.cxx b/framework/source/uielement/fontsizemenucontroller.cxx
index 674c47e0fbca..d5309310d322 100644
--- a/framework/source/uielement/fontsizemenucontroller.cxx
+++ b/framework/source/uielement/fontsizemenucontroller.cxx
@@ -36,6 +36,7 @@
#include <vcl/settings.hxx>
#include <svtools/ctrltool.hxx>
#include <osl/mutex.hxx>
+#include <boost/scoped_ptr.hpp>
// Defines
@@ -133,8 +134,8 @@ void FontSizeMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& r
if ( pVCLPopupMenu )
{
- FontList* pFontList = 0;
- Printer* pInfoPrinter = 0;
+ boost::scoped_ptr<FontList> pFontList;
+ boost::scoped_ptr<Printer> pInfoPrinter;
OUString aPrinterName;
SolarMutexGuard aSolarMutexGuard;
@@ -143,13 +144,13 @@ void FontSizeMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& r
aPrinterName = retrievePrinterName( m_xFrame );
if ( !aPrinterName.isEmpty() )
{
- pInfoPrinter = new Printer( aPrinterName );
+ pInfoPrinter.reset(new Printer( aPrinterName ));
if ( pInfoPrinter && pInfoPrinter->GetDevFontCount() > 0 )
- pFontList = new FontList( pInfoPrinter );
+ pFontList.reset(new FontList( pInfoPrinter.get() ));
}
- if ( pFontList == 0 )
- pFontList = new FontList( Application::GetDefaultDevice() );
+ if ( !pFontList )
+ pFontList.reset(new FontList( Application::GetDefaultDevice() ));
FontInfo aFntInfo = pFontList->Get( m_aFontDescriptor.Name, m_aFontDescriptor.StyleName );
@@ -233,9 +234,6 @@ void FontSizeMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& r
}
setCurHeight( long( m_aFontHeight.Height * 10), rPopupMenu );
-
- delete pFontList;
- delete pInfoPrinter;
}
}
diff --git a/framework/source/uielement/newmenucontroller.cxx b/framework/source/uielement/newmenucontroller.cxx
index d02ee3123911..cbe08737a01a 100644
--- a/framework/source/uielement/newmenucontroller.cxx
+++ b/framework/source/uielement/newmenucontroller.cxx
@@ -44,6 +44,7 @@
#include <svtools/acceleratorexecute.hxx>
#include <unotools/moduleoptions.hxx>
#include <osl/mutex.hxx>
+#include <boost/scoped_ptr.hpp>
// Defines
@@ -324,12 +325,12 @@ void NewMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPopup
if ( pVCLPopupMenu )
{
MenuConfiguration aMenuCfg( m_xContext );
- BmkMenu* pSubMenu( 0 );
+ boost::scoped_ptr<BmkMenu> pSubMenu;
if ( m_bNewMenu )
- pSubMenu = (BmkMenu*)aMenuCfg.CreateBookmarkMenu( m_xFrame, BOOKMARK_NEWMENU );
+ pSubMenu.reset((BmkMenu*)aMenuCfg.CreateBookmarkMenu( m_xFrame, BOOKMARK_NEWMENU ));
else
- pSubMenu = (BmkMenu*)aMenuCfg.CreateBookmarkMenu( m_xFrame, BOOKMARK_WIZARDMENU );
+ pSubMenu.reset((BmkMenu*)aMenuCfg.CreateBookmarkMenu( m_xFrame, BOOKMARK_WIZARDMENU ));
// copy entries as we have to use the provided popup menu
*pVCLPopupMenu = *pSubMenu;
@@ -358,8 +359,6 @@ void NewMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPopup
if ( m_bShowImages )
setMenuImages( pVCLPopupMenu, m_bShowImages );
-
- delete pSubMenu;
}
}