sc/source/ui/dbgui/pvfundlg.cxx | 4 ++-- sc/source/ui/docshell/docsh3.cxx | 6 ++---- sc/source/ui/docshell/docsh4.cxx | 22 ++++++++++------------ sc/source/ui/drawfunc/drawsh.cxx | 30 ++++++++++-------------------- sc/source/ui/drawfunc/drawsh5.cxx | 9 +++------ 5 files changed, 27 insertions(+), 44 deletions(-)
New commits: commit e9c5f63f80ea54aea9963a6c268ed03881d7b734 Author: Takeshi Abe <t...@fixedpoint.jp> Date: Thu May 15 23:32:47 2014 +0900 Avoid possible memory leaks in case of exceptions Change-Id: I7dc862794f7f0973bd4de7b54f7a1fb15235bc3e diff --git a/sc/source/ui/dbgui/pvfundlg.cxx b/sc/source/ui/dbgui/pvfundlg.cxx index 59cf31e..7aca31e 100644 --- a/sc/source/ui/dbgui/pvfundlg.cxx +++ b/sc/source/ui/dbgui/pvfundlg.cxx @@ -39,6 +39,7 @@ #include "dputil.hxx" #include <vector> +#include <boost/scoped_ptr.hpp> using namespace ::com::sun::star::sheet; @@ -499,10 +500,9 @@ IMPL_LINK( ScDPSubtotalDlg, ClickHdl, PushButton*, pBtn ) { if (pBtn == mpBtnOptions) { - ScDPSubtotalOptDlg* pDlg = new ScDPSubtotalOptDlg( this, mrDPObj, maLabelData, mrDataFields, mbEnableLayout ); + boost::scoped_ptr<ScDPSubtotalOptDlg> pDlg(new ScDPSubtotalOptDlg( this, mrDPObj, maLabelData, mrDataFields, mbEnableLayout )); if( pDlg->Execute() == RET_OK ) pDlg->FillLabelData( maLabelData ); - delete pDlg; } return 0; } diff --git a/sc/source/ui/docshell/docsh3.cxx b/sc/source/ui/docshell/docsh3.cxx index 33bb671..f297c53 100644 --- a/sc/source/ui/docshell/docsh3.cxx +++ b/sc/source/ui/docshell/docsh3.cxx @@ -61,7 +61,7 @@ #include "conflictsdlg.hxx" #include "globstr.hrc" #include "markdata.hxx" - +#include <boost/scoped_ptr.hpp> // Redraw - Benachrichtigungen @@ -653,11 +653,9 @@ void ScDocShell::ExecuteChangeCommentDialog( ScChangeAction* pAction, Window* pP aSet.Put( SvxPostItAuthorItem( aAuthor, SID_ATTR_POSTIT_AUTHOR ) ); aSet.Put( SvxPostItDateItem ( aDate, SID_ATTR_POSTIT_DATE ) ); - ScRedComDialog* pDlg = new ScRedComDialog( pParent, aSet,this,pAction,bPrevNext); + boost::scoped_ptr<ScRedComDialog> pDlg(new ScRedComDialog( pParent, aSet,this,pAction,bPrevNext)); pDlg->Execute(); - - delete pDlg; } void ScDocShell::CompareDocument( ScDocument& rOtherDoc ) diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx index 3212694..dd9eaf8 100644 --- a/sc/source/ui/docshell/docsh4.cxx +++ b/sc/source/ui/docshell/docsh4.cxx @@ -97,6 +97,7 @@ using namespace ::com::sun::star; #include "conditio.hxx" #include "sheetevents.hxx" #include <documentlinkmgr.hxx> +#include <boost/scoped_ptr.hpp> #define IS_SHARE_HEADER(set) \ ((SfxBoolItem&) \ @@ -328,7 +329,7 @@ void ScDocShell::Execute( SfxRequest& rReq ) ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create(); OSL_ENSURE(pFact, "ScAbstractFactory create fail!"); - AbstractScColRowLabelDlg* pDlg = pFact->CreateScColRowLabelDlg(pParent, bRowHeaders, bColHeaders); + boost::scoped_ptr<AbstractScColRowLabelDlg> pDlg(pFact->CreateScColRowLabelDlg(pParent, bRowHeaders, bColHeaders)); OSL_ENSURE(pDlg, "Dialog create fail!"); if ( pDlg->Execute() == RET_OK ) { @@ -340,7 +341,6 @@ void ScDocShell::Execute( SfxRequest& rReq ) } else bOk = false; - delete pDlg; } if (bOk) // ausfuehren @@ -865,7 +865,7 @@ void ScDocShell::Execute( SfxRequest& rReq ) ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create(); OSL_ENSURE(pFact, "ScAbstractFactory create fail!"); - AbstractScNewScenarioDlg* pNewDlg = pFact->CreateScNewScenarioDlg(GetActiveDialogParent(), aName, true, bSheetProtected); + boost::scoped_ptr<AbstractScNewScenarioDlg> pNewDlg(pFact->CreateScNewScenarioDlg(GetActiveDialogParent(), aName, true, bSheetProtected)); OSL_ENSURE(pNewDlg, "Dialog create fail!"); pNewDlg->SetScenarioData( aName, aComment, aColor, nFlags ); if ( pNewDlg->Execute() == RET_OK ) @@ -874,7 +874,6 @@ void ScDocShell::Execute( SfxRequest& rReq ) ModifyScenario( nTab, aName, aComment, aColor, nFlags ); rReq.Done(); } - delete pNewDlg; } } } @@ -1137,8 +1136,8 @@ bool ScDocShell::ExecuteChangeProtectionDialog( Window* _pParent, bool bJustQuer OUString aText( ScResId( SCSTR_PASSWORD ) ); OUString aPassword; - SfxPasswordDialog* pDlg = new SfxPasswordDialog( - _pParent ? _pParent : GetActiveDialogParent(), &aText ); + boost::scoped_ptr<SfxPasswordDialog> pDlg(new SfxPasswordDialog( + _pParent ? _pParent : GetActiveDialogParent(), &aText )); pDlg->SetText( aTitle ); pDlg->SetMinLen( 1 ); pDlg->SetHelpId( GetStaticInterface()->GetSlot(SID_CHG_PROTECT)->GetCommand() ); @@ -1147,7 +1146,7 @@ bool ScDocShell::ExecuteChangeProtectionDialog( Window* _pParent, bool bJustQuer pDlg->ShowExtras( SHOWEXTRAS_CONFIRM ); if ( pDlg->Execute() == RET_OK ) aPassword = pDlg->GetPassword(); - delete pDlg; + pDlg.reset(); if (!aPassword.isEmpty()) { @@ -1546,7 +1545,7 @@ void ScDocShell::ExecutePageStyle( SfxViewShell& rCaller, ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create(); OSL_ENSURE(pFact, "ScAbstractFactory create fail!"); - SfxAbstractTabDialog* pDlg = pFact->CreateScStyleDlg( GetActiveDialogParent(), *pStyleSheet, RID_SCDLG_STYLES_PAGE, RID_SCDLG_STYLES_PAGE ); + boost::scoped_ptr<SfxAbstractTabDialog> pDlg(pFact->CreateScStyleDlg( GetActiveDialogParent(), *pStyleSheet, RID_SCDLG_STYLES_PAGE, RID_SCDLG_STYLES_PAGE )); OSL_ENSURE(pDlg, "Dialog create fail!"); if ( pDlg->Execute() == RET_OK ) @@ -1586,7 +1585,7 @@ void ScDocShell::ExecutePageStyle( SfxViewShell& rCaller, PageStyleModified( aNewName, false ); rReq.Done(); } - delete pDlg; + pDlg.reset(); rStyleSet.ClearItem( ATTR_PAGE_PAPERTRAY ); } @@ -1701,11 +1700,11 @@ void ScDocShell::ExecutePageStyle( SfxViewShell& rCaller, ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create(); OSL_ENSURE(pFact, "ScAbstractFactory create fail!"); - SfxAbstractTabDialog* pDlg = pFact->CreateScHFEditDlg( SfxViewFrame::Current(), + boost::scoped_ptr<SfxAbstractTabDialog> pDlg(pFact->CreateScHFEditDlg( SfxViewFrame::Current(), GetActiveDialogParent(), rStyleSet, aStr, - nResId); + nResId)); OSL_ENSURE(pDlg, "Dialog create fail!"); if ( pDlg->Execute() == RET_OK ) { @@ -1717,7 +1716,6 @@ void ScDocShell::ExecutePageStyle( SfxViewShell& rCaller, SetDocumentModified(); rReq.Done(); } - delete pDlg; } } } diff --git a/sc/source/ui/drawfunc/drawsh.cxx b/sc/source/ui/drawfunc/drawsh.cxx index 6e4f62e..a7552d3 100644 --- a/sc/source/ui/drawfunc/drawsh.cxx +++ b/sc/source/ui/drawfunc/drawsh.cxx @@ -58,6 +58,7 @@ #include <sfx2/viewsh.hxx> #include <com/sun/star/util/XModifiable.hpp> #include <com/sun/star/frame/XFrame.hpp> +#include <boost/scoped_ptr.hpp> TYPEINIT1( ScDrawShell, SfxShell ); @@ -256,7 +257,7 @@ void ScDrawShell::ExecDrawAttr( SfxRequest& rReq ) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); if ( pFact ) { - SfxAbstractTabDialog *pDlg = pFact->CreateCaptionDialog( pWin, pView ); + boost::scoped_ptr<SfxAbstractTabDialog> pDlg(pFact->CreateCaptionDialog( pWin, pView )); const sal_uInt16* pRange = pDlg->GetInputRanges( *aNewAttr.GetPool() ); SfxItemSet aCombSet( *aNewAttr.GetPool(), pRange ); @@ -270,8 +271,6 @@ void ScDrawShell::ExecDrawAttr( SfxRequest& rReq ) pView->SetAttributes(*pDlg->GetOutputItemSet()); pView->SetGeoAttrToMarked(*pDlg->GetOutputItemSet()); } - - delete pDlg; } } else @@ -280,14 +279,13 @@ void ScDrawShell::ExecDrawAttr( SfxRequest& rReq ) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); if(pFact) { - SfxAbstractTabDialog* pDlg = pFact->CreateSvxTransformTabDialog( pWin, &aNewAttr,pView ); + boost::scoped_ptr<SfxAbstractTabDialog> pDlg(pFact->CreateSvxTransformTabDialog( pWin, &aNewAttr,pView )); OSL_ENSURE(pDlg, "Dialog creation failed!"); if (pDlg->Execute() == RET_OK) { rReq.Done(*(pDlg->GetOutputItemSet())); pView->SetGeoAttrToMarked(*pDlg->GetOutputItemSet()); } - delete pDlg; } } } @@ -331,7 +329,7 @@ void ScDrawShell::ExecuteMacroAssign( SdrObject* pObj, Window* pWin ) } // create empty itemset for macro-dlg - SfxItemSet* pItemSet = new SfxItemSet(SFX_APP()->GetPool(), SID_ATTR_MACROITEM, SID_ATTR_MACROITEM, SID_EVENTCONFIG, SID_EVENTCONFIG, 0 ); + boost::scoped_ptr<SfxItemSet> pItemSet(new SfxItemSet(SFX_APP()->GetPool(), SID_ATTR_MACROITEM, SID_ATTR_MACROITEM, SID_EVENTCONFIG, SID_EVENTCONFIG, 0 )); pItemSet->Put ( aItem, SID_ATTR_MACROITEM ); SfxEventNamesItem aNamesItem(SID_EVENTCONFIG); @@ -343,7 +341,7 @@ void ScDrawShell::ExecuteMacroAssign( SdrObject* pObj, Window* pWin ) xFrame = GetViewShell()->GetViewFrame()->GetFrame().GetFrameInterface(); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - SfxAbstractDialog* pMacroDlg = pFact->CreateSfxDialog( pWin, *pItemSet, xFrame, SID_EVENTCONFIG ); + boost::scoped_ptr<SfxAbstractDialog> pMacroDlg(pFact->CreateSfxDialog( pWin, *pItemSet, xFrame, SID_EVENTCONFIG )); if ( pMacroDlg && pMacroDlg->Execute() == RET_OK ) { const SfxItemSet* pOutSet = pMacroDlg->GetOutputItemSet(); @@ -370,9 +368,6 @@ void ScDrawShell::ExecuteMacroAssign( SdrObject* pObj, Window* pWin ) lcl_setModified( GetObjectShell() ); } } - - delete pMacroDlg; - delete pItemSet; } void ScDrawShell::ExecuteLineDlg( SfxRequest& rReq, sal_uInt16 nTabPage ) @@ -391,11 +386,11 @@ void ScDrawShell::ExecuteLineDlg( SfxRequest& rReq, sal_uInt16 nTabPage ) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); OSL_ENSURE(pFact, "Dialogdiet Factory fail!"); - SfxAbstractTabDialog * pDlg = pFact->CreateSvxLineTabDialog( pViewData->GetDialogParent(), + boost::scoped_ptr<SfxAbstractTabDialog> pDlg(pFact->CreateSvxLineTabDialog( pViewData->GetDialogParent(), &aNewAttr, pViewData->GetDocument()->GetDrawLayer(), pObj, - bHasMarked); + bHasMarked)); OSL_ENSURE(pDlg, "Dialogdiet fail!"); if ( nTabPage != 0xffff ) pDlg->SetCurPageId( nTabPage ); @@ -410,8 +405,6 @@ void ScDrawShell::ExecuteLineDlg( SfxRequest& rReq, sal_uInt16 nTabPage ) pView->InvalidateAttribs(); rReq.Done(); } - - delete pDlg; } void ScDrawShell::ExecuteAreaDlg( SfxRequest& rReq, sal_uInt16 nTabPage ) @@ -425,9 +418,9 @@ void ScDrawShell::ExecuteAreaDlg( SfxRequest& rReq, sal_uInt16 nTabPage ) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - AbstractSvxAreaTabDialog * pDlg = pFact->CreateSvxAreaTabDialog( + boost::scoped_ptr<AbstractSvxAreaTabDialog> pDlg(pFact->CreateSvxAreaTabDialog( pViewData->GetDialogParent(), &aNewAttr, - pViewData->GetDocument()->GetDrawLayer(), true); + pViewData->GetDocument()->GetDrawLayer(), true)); if ( nTabPage != 0xffff ) pDlg->SetCurPageId( nTabPage ); @@ -442,8 +435,6 @@ void ScDrawShell::ExecuteAreaDlg( SfxRequest& rReq, sal_uInt16 nTabPage ) pView->InvalidateAttribs(); rReq.Done(); } - - delete pDlg; } void ScDrawShell::ExecuteTextAttrDlg( SfxRequest& rReq, sal_uInt16 /* nTabPage */ ) @@ -456,7 +447,7 @@ void ScDrawShell::ExecuteTextAttrDlg( SfxRequest& rReq, sal_uInt16 /* nTabPage * pView->MergeAttrFromMarked( aNewAttr, false ); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - SfxAbstractTabDialog *pDlg = pFact->CreateTextTabDialog( pViewData->GetDialogParent(), &aNewAttr, pView ); + boost::scoped_ptr<SfxAbstractTabDialog> pDlg(pFact->CreateTextTabDialog( pViewData->GetDialogParent(), &aNewAttr, pView )); sal_uInt16 nResult = pDlg->Execute(); @@ -470,7 +461,6 @@ void ScDrawShell::ExecuteTextAttrDlg( SfxRequest& rReq, sal_uInt16 /* nTabPage * pView->InvalidateAttribs(); rReq.Done(); } - delete( pDlg ); } void ScDrawShell::SetHlinkForObject( SdrObject* pObj, const OUString& rHlnk ) diff --git a/sc/source/ui/drawfunc/drawsh5.cxx b/sc/source/ui/drawfunc/drawsh5.cxx index f1786bd..10644e4 100644 --- a/sc/source/ui/drawfunc/drawsh5.cxx +++ b/sc/source/ui/drawfunc/drawsh5.cxx @@ -55,6 +55,7 @@ #include "drwlayer.hxx" #include "userdat.hxx" #include "postit.hxx" +#include <boost/scoped_ptr.hpp> #include "sc.hrc" @@ -490,7 +491,7 @@ void ScDrawShell::ExecDrawFunc( SfxRequest& rReq ) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); OSL_ENSURE(pFact, "Dialogdiet fail!"); - AbstractSvxObjectNameDialog* pDlg = pFact->CreateSvxObjectNameDialog(NULL, aName); + boost::scoped_ptr<AbstractSvxObjectNameDialog> pDlg(pFact->CreateSvxObjectNameDialog(NULL, aName)); OSL_ENSURE(pDlg, "Dialogdiet fail!"); pDlg->SetCheckNameHdl(LINK(this, ScDrawShell, NameObjectHdl)); @@ -539,8 +540,6 @@ void ScDrawShell::ExecDrawFunc( SfxRequest& rReq ) pDocSh->GetDocument()->SetChartListenerCollectionNeedsUpdate( true ); pDocSh->SetDrawModified(); } - - delete pDlg; } } break; @@ -561,7 +560,7 @@ void ScDrawShell::ExecDrawFunc( SfxRequest& rReq ) SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); OSL_ENSURE(pFact, "Dialogdiet fail!"); - AbstractSvxObjectTitleDescDialog* pDlg = pFact->CreateSvxObjectTitleDescDialog(NULL, aTitle, aDescription); + boost::scoped_ptr<AbstractSvxObjectTitleDescDialog> pDlg(pFact->CreateSvxObjectTitleDescDialog(NULL, aTitle, aDescription)); OSL_ENSURE(pDlg, "Dialogdiet fail!"); if(RET_OK == pDlg->Execute()) @@ -578,8 +577,6 @@ void ScDrawShell::ExecDrawFunc( SfxRequest& rReq ) pDocSh->GetDocument()->SetChartListenerCollectionNeedsUpdate( true ); pDocSh->SetDrawModified(); } - - delete pDlg; } } break; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits