cui/source/tabpages/tpcolor.cxx | 15 +++++--------- cui/source/tabpages/tpgradnt.cxx | 40 +++++++++++++++++--------------------- cui/source/tabpages/tphatch.cxx | 41 ++++++++++++++++++--------------------- 3 files changed, 43 insertions(+), 53 deletions(-)
New commits: commit fbc7cfe515169766f4436500987100b3075378dc Author: Takeshi Abe <t...@fixedpoint.jp> Date: Sat Aug 2 19:43:47 2014 +0900 Avoid possible memory leaks in case of exceptions Change-Id: I55f418ebcb96b44ab423a676881ffe8f455a923d diff --git a/cui/source/tabpages/tpcolor.cxx b/cui/source/tabpages/tpcolor.cxx index 9a1218a..24ca821 100644 --- a/cui/source/tabpages/tpcolor.cxx +++ b/cui/source/tabpages/tpcolor.cxx @@ -46,6 +46,7 @@ #include <cuitabline.hxx> #include <svx/dialmgr.hxx> #include <svx/dialogs.hrc> +#include <boost/scoped_ptr.hpp> using namespace com::sun::star; @@ -511,10 +512,10 @@ long SvxColorTabPage::CheckChanges_Impl() { ResMgr& rMgr = CUI_MGR(); Image aWarningBoxImage = WarningBox::GetStandardImage(); - SvxMessDialog* aMessDlg = new SvxMessDialog(GetParentDialog(), + boost::scoped_ptr<SvxMessDialog> aMessDlg(new SvxMessDialog(GetParentDialog(), SVX_RESSTR( RID_SVXSTR_COLOR ), ResId( RID_SVXSTR_ASK_CHANGE_COLOR, rMgr ), - &aWarningBoxImage ); + &aWarningBoxImage )); aMessDlg->SetButtonText( MESS_BTN_1, ResId( RID_SVXSTR_CHANGE, rMgr ) ); aMessDlg->SetButtonText( MESS_BTN_2, @@ -542,7 +543,6 @@ long SvxColorTabPage::CheckChanges_Impl() case RET_CANCEL: break; } - delete aMessDlg; } } if( nDlgType == 0 ) // area dialog @@ -685,7 +685,7 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickAddHdl_Impl) aWarningBox.Execute(); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - AbstractSvxNameDialog* pDlg = pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc ); + boost::scoped_ptr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc )); bool bLoop = true; while ( !bDifferent && bLoop && pDlg->Execute() == RET_OK ) @@ -704,7 +704,6 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickAddHdl_Impl) else aWarningBox.Execute(); } - delete( pDlg ); } // if not existing the entry is entered @@ -757,7 +756,7 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickModifyHdl_Impl) aWarningBox.Execute(); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - AbstractSvxNameDialog* pDlg = pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc ); + boost::scoped_ptr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc )); bool bLoop = true; while ( !bDifferent && bLoop && pDlg->Execute() == RET_OK ) @@ -774,7 +773,6 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickModifyHdl_Impl) else aWarningBox.Execute(); } - delete( pDlg ); } // if not existing the entry is entered @@ -803,7 +801,7 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickModifyHdl_Impl) IMPL_LINK_NOARG(SvxColorTabPage, ClickWorkOnHdl_Impl) { - SvColorDialog* pColorDlg = new SvColorDialog( GetParentDialog() ); + boost::scoped_ptr<SvColorDialog> pColorDlg(new SvColorDialog( GetParentDialog() )); pColorDlg->SetColor (aCurrentColor); pColorDlg->SetMode( svtools::ColorPickerMode_MODIFY ); @@ -836,7 +834,6 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickWorkOnHdl_Impl) m_pCtlPreviewNew->Invalidate(); } - delete( pColorDlg ); return 0; } diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx index 5314b37..38c502c 100644 --- a/cui/source/tabpages/tpgradnt.cxx +++ b/cui/source/tabpages/tpgradnt.cxx @@ -41,6 +41,7 @@ #include <svx/dialmgr.hxx> #include <svx/dialogs.hrc> #include "paragrph.hrc" +#include <boost/scoped_ptr.hpp> using namespace com::sun::star; @@ -263,10 +264,10 @@ long SvxGradientTabPage::CheckChanges_Impl() { ResMgr& rMgr = CUI_MGR(); Image aWarningBoxImage = WarningBox::GetStandardImage(); - SvxMessDialog* aMessDlg = new SvxMessDialog(GetParentDialog(), + boost::scoped_ptr<SvxMessDialog> aMessDlg(new SvxMessDialog(GetParentDialog(), SVX_RESSTR( RID_SVXSTR_GRADIENT ), CUI_RESSTR( RID_SVXSTR_ASK_CHANGE_GRADIENT ), - &aWarningBoxImage ); + &aWarningBoxImage )); DBG_ASSERT(aMessDlg, "Dialog creation failed!"); aMessDlg->SetButtonText( MESS_BTN_1, OUString( ResId( RID_SVXSTR_CHANGE, rMgr ) ) ); @@ -295,7 +296,6 @@ long SvxGradientTabPage::CheckChanges_Impl() case RET_CANCEL: break; } - delete aMessDlg; } } nPos = m_pLbGradients->GetSelectEntryPos(); @@ -314,19 +314,19 @@ bool SvxGradientTabPage::FillItemSet( SfxItemSet* rSet ) { // CheckChanges(); <-- duplicate inquiry ? - XGradient* pXGradient = NULL; + boost::scoped_ptr<XGradient> pXGradient; OUString aString; sal_Int32 nPos = m_pLbGradients->GetSelectEntryPos(); if( nPos != LISTBOX_ENTRY_NOTFOUND ) { - pXGradient = new XGradient( pGradientList->GetGradient( nPos )->GetGradient() ); + pXGradient.reset(new XGradient( pGradientList->GetGradient( nPos )->GetGradient() )); aString = m_pLbGradients->GetSelectEntry(); } else // gradient was passed (unidentified) { - pXGradient = new XGradient( m_pLbColorFrom->GetSelectEntryColor(), + pXGradient.reset(new XGradient( m_pLbColorFrom->GetSelectEntryColor(), m_pLbColorTo->GetSelectEntryColor(), (XGradientStyle) m_pLbGradientType->GetSelectEntryPos(), static_cast<long>(m_pMtrAngle->GetValue() * 10), // should be changed in resource @@ -334,13 +334,11 @@ bool SvxGradientTabPage::FillItemSet( SfxItemSet* rSet ) (sal_uInt16) m_pMtrCenterY->GetValue(), (sal_uInt16) m_pMtrBorder->GetValue(), (sal_uInt16) m_pMtrColorFrom->GetValue(), - (sal_uInt16) m_pMtrColorTo->GetValue() ); + (sal_uInt16) m_pMtrColorTo->GetValue() )); } DBG_ASSERT( pXGradient, "XGradient konnte nicht erzeugt werden" ); rSet->Put( XFillStyleItem( drawing::FillStyle_GRADIENT ) ); rSet->Put( XFillGradientItem( aString, *pXGradient ) ); - - delete pXGradient; } return true; } @@ -430,9 +428,9 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickAddHdl_Impl) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); DBG_ASSERT(pFact, "Dialog creation failed!"); - AbstractSvxNameDialog* pDlg = pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc ); + boost::scoped_ptr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc )); DBG_ASSERT(pDlg, "Dialog creation failed!"); - MessageDialog* pWarnBox = NULL; + boost::scoped_ptr<MessageDialog> pWarnBox; sal_uInt16 nError = 1; while( pDlg->Execute() == RET_OK ) @@ -453,16 +451,16 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickAddHdl_Impl) if( !pWarnBox ) { - pWarnBox = new MessageDialog( GetParentDialog() + pWarnBox.reset(new MessageDialog( GetParentDialog() ,"DuplicateNameDialog" - ,"cui/ui/queryduplicatedialog.ui"); + ,"cui/ui/queryduplicatedialog.ui")); } if( pWarnBox->Execute() != RET_OK ) break; } - delete pDlg; - delete pWarnBox; + pDlg.reset(); + pWarnBox.reset(); if( !nError ) { @@ -521,7 +519,7 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickModifyHdl_Impl) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); DBG_ASSERT(pFact, "Dialog creation failed!"); - AbstractSvxNameDialog* pDlg = pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc ); + boost::scoped_ptr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc )); DBG_ASSERT(pDlg, "Dialog creation failed!"); long nCount = pGradientList->Count(); @@ -572,7 +570,6 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickModifyHdl_Impl) } } - delete pDlg; } return 0L; } @@ -772,11 +769,11 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickSaveHdl_Impl) IMPL_LINK_NOARG(SvxGradientTabPage, ChangeGradientHdl_Impl) { - XGradient* pGradient = NULL; + boost::scoped_ptr<XGradient> pGradient; int nPos = m_pLbGradients->GetSelectEntryPos(); if( nPos != LISTBOX_ENTRY_NOTFOUND ) - pGradient = new XGradient( ( (XGradientEntry*) pGradientList->GetGradient( nPos ) )->GetGradient() ); + pGradient.reset(new XGradient( ( (XGradientEntry*) pGradientList->GetGradient( nPos ) )->GetGradient() )); else { const SfxPoolItem* pPoolItem = NULL; @@ -785,7 +782,7 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ChangeGradientHdl_Impl) if( ( drawing::FillStyle_GRADIENT == (drawing::FillStyle) ( ( const XFillStyleItem* ) pPoolItem )->GetValue() ) && ( SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLGRADIENT ), true, &pPoolItem ) ) ) { - pGradient = new XGradient( ( ( const XFillGradientItem* ) pPoolItem )->GetGradientValue() ); + pGradient.reset(new XGradient( ( ( const XFillGradientItem* ) pPoolItem )->GetGradientValue() )); } } if( !pGradient ) @@ -793,7 +790,7 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ChangeGradientHdl_Impl) m_pLbGradients->SelectEntryPos( 0 ); nPos = m_pLbGradients->GetSelectEntryPos(); if( nPos != LISTBOX_ENTRY_NOTFOUND ) - pGradient = new XGradient( ( (XGradientEntry*) pGradientList->GetGradient( nPos ) )->GetGradient() ); + pGradient.reset(new XGradient( ( (XGradientEntry*) pGradientList->GetGradient( nPos ) )->GetGradient() )); } } @@ -838,7 +835,6 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ChangeGradientHdl_Impl) m_pCtlPreview->SetAttributes( aXFillAttr.GetItemSet() ); m_pCtlPreview->Invalidate(); - delete pGradient; } return 0L; } diff --git a/cui/source/tabpages/tphatch.cxx b/cui/source/tabpages/tphatch.cxx index f1ebdc6..501bd67 100644 --- a/cui/source/tabpages/tphatch.cxx +++ b/cui/source/tabpages/tphatch.cxx @@ -43,6 +43,7 @@ #include <svx/dialmgr.hxx> #include "paragrph.hrc" #include <svx/dialogs.hrc> +#include <boost/scoped_ptr.hpp> using namespace com::sun::star; @@ -240,10 +241,10 @@ long SvxHatchTabPage::CheckChanges_Impl() { ResMgr& rMgr = CUI_MGR(); Image aWarningBoxImage = WarningBox::GetStandardImage(); - SvxMessDialog* aMessDlg = new SvxMessDialog(GetParentDialog(), + boost::scoped_ptr<SvxMessDialog> aMessDlg(new SvxMessDialog(GetParentDialog(), SVX_RESSTR( RID_SVXSTR_HATCH ), CUI_RESSTR( RID_SVXSTR_ASK_CHANGE_HATCH ), - &aWarningBoxImage ); + &aWarningBoxImage )); DBG_ASSERT(aMessDlg, "Dialog creation failed!"); aMessDlg->SetButtonText( MESS_BTN_1, OUString( ResId( RID_SVXSTR_CHANGE, rMgr ) ) ); @@ -269,7 +270,6 @@ long SvxHatchTabPage::CheckChanges_Impl() case RET_CANCEL: break; } - delete aMessDlg; } sal_Int32 nPos = m_pLbHatchings->GetSelectEntryPos(); @@ -288,27 +288,25 @@ bool SvxHatchTabPage::FillItemSet( SfxItemSet* rSet ) { // CheckChanges(); <-- duplicate inquiry ? - XHatch* pXHatch = NULL; + boost::scoped_ptr<XHatch> pXHatch; OUString aString; sal_Int32 nPos = m_pLbHatchings->GetSelectEntryPos(); if( nPos != LISTBOX_ENTRY_NOTFOUND ) { - pXHatch = new XHatch( pHatchingList->GetHatch( nPos )->GetHatch() ); + pXHatch.reset(new XHatch( pHatchingList->GetHatch( nPos )->GetHatch() )); aString = m_pLbHatchings->GetSelectEntry(); } // gradient has been (unidentifiedly) passed else { - pXHatch = new XHatch( m_pLbLineColor->GetSelectEntryColor(), + pXHatch.reset(new XHatch( m_pLbLineColor->GetSelectEntryColor(), (XHatchStyle) m_pLbLineType->GetSelectEntryPos(), GetCoreValue( *m_pMtrDistance, ePoolUnit ), - static_cast<long>(m_pMtrAngle->GetValue() * 10) ); + static_cast<long>(m_pMtrAngle->GetValue() * 10) )); } DBG_ASSERT( pXHatch, "XHatch konnte nicht erzeugt werden" ); rSet->Put( XFillStyleItem( drawing::FillStyle_HATCH ) ); rSet->Put( XFillHatchItem( aString, *pXHatch ) ); - - delete pXHatch; } } return true; @@ -385,11 +383,11 @@ IMPL_LINK( SvxHatchTabPage, ModifiedHdl_Impl, void *, p ) IMPL_LINK_NOARG(SvxHatchTabPage, ChangeHatchHdl_Impl) { - XHatch* pHatch = NULL; + boost::scoped_ptr<XHatch> pHatch; int nPos = m_pLbHatchings->GetSelectEntryPos(); if( nPos != LISTBOX_ENTRY_NOTFOUND ) - pHatch = new XHatch( ( (XHatchEntry*) pHatchingList->GetHatch( nPos ) )->GetHatch() ); + pHatch.reset(new XHatch( ( (XHatchEntry*) pHatchingList->GetHatch( nPos ) )->GetHatch() )); else { const SfxPoolItem* pPoolItem = NULL; @@ -398,7 +396,7 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ChangeHatchHdl_Impl) if( ( drawing::FillStyle_HATCH == (drawing::FillStyle) ( ( const XFillStyleItem* ) pPoolItem )->GetValue() ) && ( SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLHATCH ), true, &pPoolItem ) ) ) { - pHatch = new XHatch( ( ( const XFillHatchItem* ) pPoolItem )->GetHatchValue() ); + pHatch.reset(new XHatch( ( ( const XFillHatchItem* ) pPoolItem )->GetHatchValue() )); } } if( !pHatch ) @@ -406,7 +404,7 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ChangeHatchHdl_Impl) m_pLbHatchings->SelectEntryPos( 0 ); nPos = m_pLbHatchings->GetSelectEntryPos(); if( nPos != LISTBOX_ENTRY_NOTFOUND ) - pHatch = new XHatch( ( (XHatchEntry*) pHatchingList->GetHatch( nPos ) )->GetHatch() ); + pHatch.reset(new XHatch( ( (XHatchEntry*) pHatchingList->GetHatch( nPos ) )->GetHatch() )); } } if( pHatch ) @@ -443,7 +441,7 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ChangeHatchHdl_Impl) m_pCtlPreview->SetAttributes( aXFillAttr.GetItemSet() ); m_pCtlPreview->Invalidate(); - delete pHatch; + pHatch.reset(); } m_pMtrDistance->SaveValue(); m_pMtrAngle->SaveValue(); @@ -480,9 +478,9 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickAddHdl_Impl) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); DBG_ASSERT(pFact, "Dialog creation failed!"); - AbstractSvxNameDialog* pDlg = pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc ); + boost::scoped_ptr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc )); DBG_ASSERT(pDlg, "Dialog creation failed!"); - MessageDialog* pWarnBox = NULL; + boost::scoped_ptr<MessageDialog> pWarnBox; sal_uInt16 nError = 1; while( pDlg->Execute() == RET_OK ) @@ -502,16 +500,16 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickAddHdl_Impl) if( !pWarnBox ) { - pWarnBox = new MessageDialog( GetParentDialog() + pWarnBox.reset(new MessageDialog( GetParentDialog() ,"DuplicateNameDialog" - ,"cui/ui/queryduplicatedialog.ui"); + ,"cui/ui/queryduplicatedialog.ui")); } if( pWarnBox->Execute() != RET_OK ) break; } - delete pDlg; - delete pWarnBox; + pDlg.reset(); + pWarnBox.reset(); if( !nError ) { @@ -565,7 +563,7 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickModifyHdl_Impl) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); DBG_ASSERT(pFact, "Dialog creation failed!"); - AbstractSvxNameDialog* pDlg = pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc ); + boost::scoped_ptr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog( GetParentDialog(), aName, aDesc )); DBG_ASSERT(pDlg, "Dialog creation failed!"); long nCount = pHatchingList->Count(); @@ -616,7 +614,6 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickModifyHdl_Impl) aBox.Execute(); } } - delete( pDlg ); } return 0L; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits