[Libreoffice-commits] core.git: sc/source
Takeshi Abe
tabe at fixedpoint.jp
Wed May 7 08:11:55 PDT 2014
sc/source/ui/view/printfun.cxx | 15 +++++----------
sc/source/ui/view/tabvwsh3.cxx | 14 ++++----------
sc/source/ui/view/tabvwshf.cxx | 19 +++++++------------
sc/source/ui/view/viewfun2.cxx | 22 ++++++++--------------
sc/source/ui/view/viewfun3.cxx | 19 +++++++++----------
5 files changed, 33 insertions(+), 56 deletions(-)
New commits:
commit 34ae7b16d7ef365f4b63dd3d4a9e756e2b77e7bd
Author: Takeshi Abe <tabe at fixedpoint.jp>
Date: Thu May 8 00:09:02 2014 +0900
Avoid possible memory leaks in case of exceptions
Change-Id: Idf1460e5207e0797390593535f2b2c080609a77b
diff --git a/sc/source/ui/view/printfun.cxx b/sc/source/ui/view/printfun.cxx
index 2f76e43..f3cb9b6 100644
--- a/sc/source/ui/view/printfun.cxx
+++ b/sc/source/ui/view/printfun.cxx
@@ -523,14 +523,14 @@ void ScPrintFunc::DrawToDev( ScDocument* pDoc, OutputDevice* pDev, double /* nPr
// #114135#
ScDrawLayer* pModel = pDoc->GetDrawLayer();
- FmFormView* pDrawView = NULL;
+ boost::scoped_ptr<FmFormView> pDrawView;
if( pModel )
{
- pDrawView = new FmFormView( pModel, pDev );
+ pDrawView.reset(new FmFormView( pModel, pDev ));
pDrawView->ShowSdrPage(pDrawView->GetModel()->GetPage(nTab));
pDrawView->SetPrintPreview( true );
- aOutputData.SetDrawView( pDrawView );
+ aOutputData.SetDrawView( pDrawView.get() );
}
//! SetUseStyleColor ??
@@ -594,9 +594,6 @@ void ScPrintFunc::DrawToDev( ScDocument* pDoc, OutputDevice* pDev, double /* nPr
aOutputData.PrintDrawingLayer(SC_LAYER_FRONT, aMMOffset);
aOutputData.PrintDrawingLayer(SC_LAYER_INTERN, aMMOffset);
aOutputData.PostPrintDrawingLayer(aMMOffset); // #i74768#
-
- // #114135#
- delete pDrawView;
}
@@ -1346,7 +1343,7 @@ void ScPrintFunc::DrawBorder( long nScrX, long nScrY, long nScrW, long nScrH,
if (pBorderData)
{
- ScDocument* pBorderDoc = new ScDocument( SCDOCMODE_UNDO );
+ boost::scoped_ptr<ScDocument> pBorderDoc(new ScDocument( SCDOCMODE_UNDO ));
pBorderDoc->InitUndo( pDoc, 0,0, true,true );
if (pBorderData)
pBorderDoc->ApplyAttr( 0,0,0, *pBorderData );
@@ -1360,14 +1357,12 @@ void ScPrintFunc::DrawBorder( long nScrX, long nScrY, long nScrW, long nScrH,
aTabInfo.mpRowInfo[0].pCellInfo[1].nWidth =
aTabInfo.mpRowInfo[1].pCellInfo[1].nWidth = (sal_uInt16) nEffWidth;
- ScOutputData aOutputData( pDev, OUTTYPE_PRINTER, aTabInfo, pBorderDoc, 0,
+ ScOutputData aOutputData( pDev, OUTTYPE_PRINTER, aTabInfo, pBorderDoc.get(), 0,
nScrX+nLeft, nScrY+nTop, 0,0, 0,0, nScaleX, nScaleY );
aOutputData.SetUseStyleColor( bUseStyleColor );
if (pBorderData)
aOutputData.DrawFrame();
-
- delete pBorderDoc;
}
}
diff --git a/sc/source/ui/view/tabvwsh3.cxx b/sc/source/ui/view/tabvwsh3.cxx
index 2b66df4..7c2a2c2 100644
--- a/sc/source/ui/view/tabvwsh3.cxx
+++ b/sc/source/ui/view/tabvwsh3.cxx
@@ -647,7 +647,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
{
SfxItemSet aSet ( GetPool(), SID_ATTR_ZOOM, SID_ATTR_ZOOM );
SvxZoomItem aZoomItem( eOldZoomType, nOldZoom, SID_ATTR_ZOOM );
- AbstractSvxZoomDialog* pDlg = NULL;
+ boost::scoped_ptr<AbstractSvxZoomDialog> pDlg;
ScMarkData& rMark = GetViewData()->GetMarkData();
sal_uInt16 nBtnFlags = SVX_ZOOM_ENABLE_50
| SVX_ZOOM_ENABLE_75
@@ -665,7 +665,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
if(pFact)
{
- pDlg = pFact->CreateSvxZoomDialog(GetDialogParent(), aSet );
+ pDlg.reset(pFact->CreateSvxZoomDialog(GetDialogParent(), aSet ));
OSL_ENSURE(pDlg, "Dialogdiet fail!");
}
if (pDlg)
@@ -685,8 +685,6 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
eNewZoomType = rZoomItem.GetType();
nZoom = rZoomItem.GetValue();
}
-
- delete pDlg;
}
}
@@ -966,7 +964,6 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
case FID_PROTECT_DOC:
{
ScDocument* pDoc = GetViewData()->GetDocument();
- SfxPasswordDialog* pDlg;
if( pReqArgs )
{
@@ -989,7 +986,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
{
OUString aText(ScResId(SCSTR_PASSWORD));
- pDlg = new SfxPasswordDialog(GetDialogParent(), &aText);
+ boost::scoped_ptr<SfxPasswordDialog> pDlg(new SfxPasswordDialog(GetDialogParent(), &aText));
pDlg->SetText( ScResId(SCSTR_UNPROTECTDOC) );
pDlg->SetMinLen( 0 );
pDlg->SetHelpId( GetStaticInterface()->GetSlot(FID_PROTECT_DOC)->GetCommand() );
@@ -999,7 +996,6 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
aPassword = pDlg->GetPassword();
else
bCancel = true;
- delete pDlg;
}
if (!bCancel)
{
@@ -1012,7 +1008,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
{
OUString aText(ScResId(SCSTR_PASSWORDOPT));
- pDlg = new SfxPasswordDialog( GetDialogParent(), &aText );
+ boost::scoped_ptr<SfxPasswordDialog> pDlg(new SfxPasswordDialog(GetDialogParent(), &aText));
pDlg->SetText( ScResId(SCSTR_PROTECTDOC) );
pDlg->SetMinLen( 0 );
pDlg->SetHelpId( GetStaticInterface()->GetSlot(FID_PROTECT_DOC)->GetCommand() );
@@ -1026,8 +1022,6 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
rReq.AppendItem( SfxBoolItem( FID_PROTECT_DOC, true ) );
rReq.Done();
}
-
- delete pDlg;
}
rBindings.Invalidate( FID_PROTECT_DOC );
}
diff --git a/sc/source/ui/view/tabvwshf.cxx b/sc/source/ui/view/tabvwshf.cxx
index bf9de04..8055546 100644
--- a/sc/source/ui/view/tabvwshf.cxx
+++ b/sc/source/ui/view/tabvwshf.cxx
@@ -131,7 +131,7 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
- AbstractScShowTabDlg* pDlg = pFact->CreateScShowTabDlg(GetDialogParent());
+ boost::scoped_ptr<AbstractScShowTabDlg> pDlg(pFact->CreateScShowTabDlg(GetDialogParent()));
OSL_ENSURE(pDlg, "Dialog create fail!");
OUString aTabName;
@@ -158,7 +158,6 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
ShowTable( rNames );
rReq.Done();
}
- delete pDlg;
}
}
break;
@@ -200,8 +199,8 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
- AbstractScInsertTableDlg* pDlg = pFact->CreateScInsertTableDlg(GetDialogParent(), *pViewData,
- nTabSelCount, nSlot == FID_INS_TABLE_EXT);
+ boost::scoped_ptr<AbstractScInsertTableDlg> pDlg(pFact->CreateScInsertTableDlg(GetDialogParent(), *pViewData,
+ nTabSelCount, nSlot == FID_INS_TABLE_EXT));
OSL_ENSURE(pDlg, "Dialog create fail!");
if ( RET_OK == pDlg->Execute() )
{
@@ -292,8 +291,6 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
}
}
}
-
- delete pDlg;
}
}
break;
@@ -374,10 +371,10 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
- AbstractScStringInputDlg* pDlg = pFact->CreateScStringInputDlg(
+ boost::scoped_ptr<AbstractScStringInputDlg> pDlg(pFact->CreateScStringInputDlg(
GetDialogParent(), aDlgTitle, OUString(ScResId(SCSTR_NAME)),
aName, GetStaticInterface()->GetSlot(nSlot)->GetCommand(),
- pHelpId);
+ pHelpId));
OSL_ENSURE(pDlg, "Dialog create fail!");
@@ -423,7 +420,6 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
}
}
}
- delete pDlg;
}
}
break;
@@ -502,8 +498,8 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
- AbstractScMoveTableDlg* pDlg = pFact->CreateScMoveTableDlg(GetDialogParent(),
- aDefaultName);
+ boost::scoped_ptr<AbstractScMoveTableDlg> pDlg(pFact->CreateScMoveTableDlg(GetDialogParent(),
+ aDefaultName));
OSL_ENSURE(pDlg, "Dialog create fail!");
SCTAB nTableCount = pDoc->GetTableCount();
@@ -553,7 +549,6 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
rReq.AppendItem( SfxUInt16Item( FN_PARAM_1, static_cast<sal_uInt16>(nBasicTab) ) );
rReq.AppendItem( SfxBoolItem( FN_PARAM_2, bCpy ) );
}
- delete pDlg;
}
if( bDoIt )
diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx
index 6bfb61c..3bbb8e2 100644
--- a/sc/source/ui/view/viewfun2.cxx
+++ b/sc/source/ui/view/viewfun2.cxx
@@ -779,7 +779,7 @@ void ScViewFunc::EnterBlock( const OUString& rString, const EditTextObject* pDat
ScAddress aPos( nCol, nRow, nTab );
- ScDocument* pInsDoc = new ScDocument( SCDOCMODE_CLIP );
+ boost::scoped_ptr<ScDocument> pInsDoc(new ScDocument( SCDOCMODE_CLIP ));
pInsDoc->ResetClip( pDoc, nTab );
if (aNewStr[0] == '=') // Formula ?
@@ -797,7 +797,7 @@ void ScViewFunc::EnterBlock( const OUString& rString, const EditTextObject* pDat
pInsDoc->SetClipArea( ScRange(aPos) );
// insert Block, with Undo etc.
- if ( PasteFromClip( IDF_CONTENTS, pInsDoc, PASTE_NOFUNC, false, false,
+ if ( PasteFromClip( IDF_CONTENTS, pInsDoc.get(), PASTE_NOFUNC, false, false,
false, INS_NONE, IDF_ATTRIB ) )
{
const SfxUInt32Item* pItem = (SfxUInt32Item*) pInsDoc->GetAttr(
@@ -807,16 +807,13 @@ void ScViewFunc::EnterBlock( const OUString& rString, const EditTextObject* pDat
// MarkData was already MarkToSimple'ed in PasteFromClip
ScRange aRange;
rMark.GetMarkArea( aRange );
- ScPatternAttr* pPattern = new ScPatternAttr( pDoc->GetPool() );
+ boost::scoped_ptr<ScPatternAttr> pPattern(new ScPatternAttr( pDoc->GetPool() ));
pPattern->GetItemSet().Put( *pItem );
short nNewType = pDoc->GetFormatTable()->GetType( pItem->GetValue() );
pDoc->ApplyPatternIfNumberformatIncompatible( aRange, rMark,
*pPattern, nNewType );
- delete pPattern;
}
}
-
- delete pInsDoc;
}
// manual page break
@@ -2883,14 +2880,14 @@ void ScViewFunc::SetSelectionFrameLines( const SvxBorderLine* pLine,
// none of the lines don't care?
if( (eItemState != SFX_ITEM_DONTCARE) && (eTLBRState != SFX_ITEM_DONTCARE) && (eBLTRState != SFX_ITEM_DONTCARE) )
{
- SfxItemSet* pOldSet = new SfxItemSet(
+ boost::scoped_ptr<SfxItemSet> pOldSet(new SfxItemSet(
*(pDoc->GetPool()),
ATTR_PATTERN_START,
- ATTR_PATTERN_END );
- SfxItemSet* pNewSet = new SfxItemSet(
+ ATTR_PATTERN_END ));
+ boost::scoped_ptr<SfxItemSet> pNewSet(new SfxItemSet(
*(pDoc->GetPool()),
ATTR_PATTERN_START,
- ATTR_PATTERN_END );
+ ATTR_PATTERN_END ));
const SvxBorderLine* pBoxLine = NULL;
@@ -2935,10 +2932,7 @@ void ScViewFunc::SetSelectionFrameLines( const SvxBorderLine* pLine,
pNewSet->Put( aBLTRItem );
}
- ApplyAttributes( pNewSet, pOldSet );
-
- delete pOldSet;
- delete pNewSet;
+ ApplyAttributes( pNewSet.get(), pOldSet.get() );
}
else // if ( eItemState == SFX_ITEM_DONTCARE )
{
diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx
index b548313..2f7375e 100644
--- a/sc/source/ui/view/viewfun3.cxx
+++ b/sc/source/ui/view/viewfun3.cxx
@@ -65,6 +65,7 @@
#include "undodat.hxx"
#include "drawview.hxx"
#include "cliputil.hxx"
+#include <boost/scoped_ptr.hpp>
using namespace com::sun::star;
@@ -1206,16 +1207,16 @@ bool ScViewFunc::PasteFromClip( sal_uInt16 nFlags, ScDocument* pClipDoc,
// wenn gerechnet werden soll, Originaldaten merken
- ScDocument* pMixDoc = NULL;
+ boost::scoped_ptr<ScDocument> pMixDoc;
if (nFunction)
{
bSkipEmpty = false;
if ( nFlags & IDF_CONTENTS )
{
- pMixDoc = new ScDocument( SCDOCMODE_UNDO );
+ pMixDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
pMixDoc->InitUndo( pDoc, nStartTab, nEndTab );
pDoc->CopyToDocument( nStartCol, nStartRow, nStartTab, nEndCol, nEndRow, nEndTab,
- IDF_CONTENTS, false, pMixDoc );
+ IDF_CONTENTS, false, pMixDoc.get() );
}
}
@@ -1261,9 +1262,9 @@ bool ScViewFunc::PasteFromClip( sal_uInt16 nFlags, ScDocument* pClipDoc,
if ( pMixDoc ) // Rechenfunktionen mit Original-Daten auszufuehren ?
{
- pDoc->MixDocument( aUserRange, nFunction, bSkipEmpty, pMixDoc );
+ pDoc->MixDocument( aUserRange, nFunction, bSkipEmpty, pMixDoc.get() );
}
- delete pMixDoc;
+ pMixDoc.reset();
AdjustBlockHeight(); // update row heights before pasting objects
@@ -1854,10 +1855,10 @@ bool ScViewFunc::LinkBlock( const ScRange& rSource, const ScAddress& rDestPos, b
// Ausfuehren per Paste
ScDocument* pDoc = GetViewData()->GetDocument();
- ScDocument* pClipDoc = new ScDocument( SCDOCMODE_CLIP );
+ boost::scoped_ptr<ScDocument> pClipDoc(new ScDocument( SCDOCMODE_CLIP ));
pDoc->CopyTabToClip( rSource.aStart.Col(), rSource.aStart.Row(),
rSource.aEnd.Col(), rSource.aEnd.Row(),
- rSource.aStart.Tab(), pClipDoc );
+ rSource.aStart.Tab(), pClipDoc.get() );
// Zielbereich markieren (Cursor setzen, keine Markierung)
@@ -1868,9 +1869,7 @@ bool ScViewFunc::LinkBlock( const ScRange& rSource, const ScAddress& rDestPos, b
// Paste
- PasteFromClip( IDF_ALL, pClipDoc, PASTE_NOFUNC, false, false, true ); // als Link
-
- delete pClipDoc;
+ PasteFromClip( IDF_ALL, pClipDoc.get(), PASTE_NOFUNC, false, false, true ); // als Link
return true;
}
More information about the Libreoffice-commits
mailing list