summaryrefslogtreecommitdiff
path: root/sd/source/ui/view/outlnvs2.cxx
diff options
context:
space:
mode:
authorTakeshi Abe <tabe@fixedpoint.jp>2014-05-27 23:11:57 +0900
committerTakeshi Abe <tabe@fixedpoint.jp>2014-05-27 23:29:02 +0900
commitf46d9c7d4d5e46a793d9e3dd9211c42007b11c0d (patch)
treef7d2ed7eb29bb2388c2c9f4e037c269fae01ede6 /sd/source/ui/view/outlnvs2.cxx
parent426033250db0b9b6344980655ca0be59efe6a6a5 (diff)
Avoid possible memory leaks in case of exceptions
Change-Id: Id75c459cfa59fe2adfc0f748dc33d0bc9e271507
Diffstat (limited to 'sd/source/ui/view/outlnvs2.cxx')
-rw-r--r--sd/source/ui/view/outlnvs2.cxx39
1 files changed, 19 insertions, 20 deletions
diff --git a/sd/source/ui/view/outlnvs2.cxx b/sd/source/ui/view/outlnvs2.cxx
index 9b88288176ad..0f3812b72c1c 100644
--- a/sd/source/ui/view/outlnvs2.cxx
+++ b/sd/source/ui/view/outlnvs2.cxx
@@ -297,14 +297,14 @@ void OutlineViewShell::FuTemporary(SfxRequest &rReq)
case SID_PHOTOALBUM:
{
SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
- VclAbstractDialog* pDlg = pFact ? pFact->CreateSdPhotoAlbumDialog(
+ boost::scoped_ptr<VclAbstractDialog> pDlg(pFact ? pFact->CreateSdPhotoAlbumDialog(
GetActiveWindow(),
- GetDoc()) : 0;
+ GetDoc()) : 0);
if (pDlg)
{
pDlg->Execute();
- delete pDlg;
+ pDlg.reset();
}
Cancel();
rReq.Ignore ();
@@ -472,44 +472,44 @@ void OutlineViewShell::FuTemporaryModify(SfxRequest &rReq)
case SID_INSERT_FLD_PAGES:
case SID_INSERT_FLD_FILE:
{
- SvxFieldItem* pFieldItem = 0;
+ boost::scoped_ptr<SvxFieldItem> pFieldItem;
switch( nSId )
{
case SID_INSERT_FLD_DATE_FIX:
- pFieldItem = new SvxFieldItem(
- SvxDateField( Date( Date::SYSTEM ), SVXDATETYPE_FIX ), EE_FEATURE_FIELD );
+ pFieldItem.reset(new SvxFieldItem(
+ SvxDateField( Date( Date::SYSTEM ), SVXDATETYPE_FIX ), EE_FEATURE_FIELD ));
break;
case SID_INSERT_FLD_DATE_VAR:
- pFieldItem = new SvxFieldItem( SvxDateField(), EE_FEATURE_FIELD );
+ pFieldItem.reset(new SvxFieldItem( SvxDateField(), EE_FEATURE_FIELD ));
break;
case SID_INSERT_FLD_TIME_FIX:
- pFieldItem = new SvxFieldItem(
- SvxExtTimeField( Time( Time::SYSTEM ), SVXTIMETYPE_FIX ), EE_FEATURE_FIELD );
+ pFieldItem.reset(new SvxFieldItem(
+ SvxExtTimeField( Time( Time::SYSTEM ), SVXTIMETYPE_FIX ), EE_FEATURE_FIELD ));
break;
case SID_INSERT_FLD_TIME_VAR:
- pFieldItem = new SvxFieldItem( SvxExtTimeField(), EE_FEATURE_FIELD );
+ pFieldItem.reset(new SvxFieldItem( SvxExtTimeField(), EE_FEATURE_FIELD ));
break;
case SID_INSERT_FLD_AUTHOR:
{
SvtUserOptions aUserOptions;
- pFieldItem = new SvxFieldItem(
+ pFieldItem.reset(new SvxFieldItem(
SvxAuthorField(
aUserOptions.GetFirstName(), aUserOptions.GetLastName(), aUserOptions.GetID() )
- , EE_FEATURE_FIELD );
+ , EE_FEATURE_FIELD ));
}
break;
case SID_INSERT_FLD_PAGE:
- pFieldItem = new SvxFieldItem( SvxPageField(), EE_FEATURE_FIELD );
+ pFieldItem.reset(new SvxFieldItem( SvxPageField(), EE_FEATURE_FIELD ));
break;
case SID_INSERT_FLD_PAGES:
- pFieldItem = new SvxFieldItem( SvxPagesField(), EE_FEATURE_FIELD );
+ pFieldItem.reset(new SvxFieldItem( SvxPagesField(), EE_FEATURE_FIELD ));
break;
case SID_INSERT_FLD_FILE:
@@ -519,7 +519,7 @@ void OutlineViewShell::FuTemporaryModify(SfxRequest &rReq)
aName = GetDocSh()->GetMedium()->GetName();
//else
// aName = GetDocSh()->GetName();
- pFieldItem = new SvxFieldItem( SvxExtFileField( aName ), EE_FEATURE_FIELD );
+ pFieldItem.reset(new SvxFieldItem( SvxExtFileField( aName ), EE_FEATURE_FIELD ));
}
break;
}
@@ -545,7 +545,7 @@ void OutlineViewShell::FuTemporaryModify(SfxRequest &rReq)
if( pFieldItem )
pOutlinerView->InsertField( *pFieldItem );
- delete pFieldItem;
+ pFieldItem.reset();
Cancel();
rReq.Ignore ();
@@ -563,10 +563,10 @@ void OutlineViewShell::FuTemporaryModify(SfxRequest &rReq)
{
// Dialog...
SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
- AbstractSdModifyFieldDlg* pDlg = pFact ? pFact->CreateSdModifyFieldDlg(GetActiveWindow(), pFldItem->GetField(), pOutlinerView->GetAttribs() ) : 0;
+ boost::scoped_ptr<AbstractSdModifyFieldDlg> pDlg(pFact ? pFact->CreateSdModifyFieldDlg(GetActiveWindow(), pFldItem->GetField(), pOutlinerView->GetAttribs() ) : 0);
if( pDlg && (pDlg->Execute() == RET_OK) )
{
- SvxFieldData* pField = pDlg->GetField();
+ boost::scoped_ptr<SvxFieldData> pField(pDlg->GetField());
if( pField )
{
SvxFieldItem aFieldItem( *pField, EE_FEATURE_FIELD );
@@ -588,7 +588,7 @@ void OutlineViewShell::FuTemporaryModify(SfxRequest &rReq)
aSel.nEndPos--;
pOutlinerView->SetSelection( aSel );
- delete pField;
+ pField.reset();
}
SfxItemSet aSet( pDlg->GetItemSet() );
@@ -601,7 +601,6 @@ void OutlineViewShell::FuTemporaryModify(SfxRequest &rReq)
pOutliner->UpdateFields();
}
}
- delete pDlg;
}
Cancel();