summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-03-22 15:32:39 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-03-23 11:31:14 +0100
commit400a70303aae6e98d2d5b1d1eb484149a70f9121 (patch)
tree5e1f8e1ea8b20f73d778b32e99135b5ea25ce2f9
parente4a839932a6247e8ddd9b16ae597a705ad71fb43 (diff)
loplugin:useuniqueptr in PPTWriter
Change-Id: I5c099e97d51808d2dcaf6d1385d1e3cab2e2ddf2 Reviewed-on: https://gerrit.libreoffice.org/51762 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--sd/source/filter/eppt/eppt.cxx40
-rw-r--r--sd/source/filter/eppt/eppt.hxx12
-rw-r--r--sd/source/filter/eppt/epptbase.hxx2
-rw-r--r--sd/source/filter/eppt/epptso.cxx26
-rw-r--r--sd/source/filter/eppt/pptx-epptbase.cxx4
5 files changed, 39 insertions, 45 deletions
diff --git a/sd/source/filter/eppt/eppt.cxx b/sd/source/filter/eppt/eppt.cxx
index eddc6edbda6b..f906b99af1f8 100644
--- a/sd/source/filter/eppt/eppt.cxx
+++ b/sd/source/filter/eppt/eppt.cxx
@@ -119,12 +119,12 @@ void PPTWriter::exportPPTPre( const std::vector< css::beans::PropertyValue >& rM
if ( !ImplCreateCurrentUserStream() )
return;
- mpStrm = mrStg->OpenSotStream( "PowerPoint Document" );
+ mpStrm.reset( mrStg->OpenSotStream( "PowerPoint Document" ) );
if ( !mpStrm )
return;
if ( !mpPicStrm )
- mpPicStrm = mrStg->OpenSotStream( "Pictures" );
+ mpPicStrm.reset( mrStg->OpenSotStream( "Pictures" ) );
for (std::vector< css::beans::PropertyValue >::const_iterator aIter( rMediaData.begin() ), aEnd( rMediaData.end() );
aIter != aEnd ; ++aIter)
@@ -135,7 +135,7 @@ void PPTWriter::exportPPTPre( const std::vector< css::beans::PropertyValue >& rM
break;
}
}
- mpPptEscherEx = new PptEscherEx( *mpStrm, maBaseURI );
+ mpPptEscherEx.reset( new PptEscherEx( *mpStrm, maBaseURI ) );
}
void PPTWriter::exportPPTPost( )
@@ -457,33 +457,27 @@ void PPTWriter::ImplWriteSlideMaster( sal_uInt32 nPageNum, Reference< XPropertyS
if ( aBuExMasterStream.Tell() )
{
- ImplProgTagContainer( mpStrm, &aBuExMasterStream );
+ ImplProgTagContainer( mpStrm.get(), &aBuExMasterStream );
}
mpPptEscherEx->CloseContainer(); // EPP_MainMaster
};
PPTWriter::~PPTWriter()
{
- delete mpExEmbed;
- delete mpPptEscherEx;
- delete mpCurUserStrm;
- delete mpPicStrm;
- delete mpStrm;
-
- std::vector< PPTExStyleSheet* >::iterator aStyleSheetIter( maStyleSheetList.begin() );
- while( aStyleSheetIter < maStyleSheetList.end() )
- delete *aStyleSheetIter++;
-
- for ( std::vector<PPTExOleObjEntry*>::const_iterator it = maExOleObj.begin(); it != maExOleObj.end(); ++it )
- delete *it;
-
+ mpExEmbed.reset();
+ mpPptEscherEx.reset();
+ mpCurUserStrm.reset();
+ mpPicStrm.reset();
+ mpStrm.reset();
+ maStyleSheetList.clear();
+ maExOleObj.clear();
if ( mbStatusIndicator )
mXStatusIndicator->end();
}
bool PPTWriter::ImplCreateCurrentUserStream()
{
- mpCurUserStrm = mrStg->OpenSotStream( "Current User" );
+ mpCurUserStrm.reset( mrStg->OpenSotStream( "Current User" ) );
if ( !mpCurUserStrm )
return false;
char pUserName[] = "Current User";
@@ -1190,7 +1184,7 @@ void PPTWriter::ImplWriteBackground( css::uno::Reference< css::beans::XPropertyS
// #i121183# Use real PageSize in 100th mm
::tools::Rectangle aRect(Point(0, 0), Size(maPageSize.Width, maPageSize.Height));
- EscherPropertyContainer aPropOpt( mpPptEscherEx->GetGraphicProvider(), mpPicStrm, aRect );
+ EscherPropertyContainer aPropOpt( mpPptEscherEx->GetGraphicProvider(), mpPicStrm.get(), aRect );
aPropOpt.AddOpt( ESCHER_Prop_fillType, ESCHER_FillSolid );
css::drawing::FillStyle aFS( css::drawing::FillStyle_NONE );
if ( ImplGetPropertyValue( rXPropSet, "FillStyle" ) )
@@ -1262,9 +1256,9 @@ void PPTWriter::ImplWriteOLE( )
SvxMSExportOLEObjects aOleExport( mnCnvrtFlags );
- for ( std::vector<PPTExOleObjEntry*>::const_iterator it = maExOleObj.begin(); it != maExOleObj.end(); ++it )
+ for ( auto it = maExOleObj.begin(); it != maExOleObj.end(); ++it )
{
- PPTExOleObjEntry* pPtr = *it;
+ PPTExOleObjEntry* pPtr = it->get();
SvMemoryStream* pStrm = nullptr;
pPtr->nOfsB = mpStrm->Tell();
switch ( pPtr->eType )
@@ -1386,9 +1380,9 @@ bool PPTWriter::ImplWriteAtomEnding()
}
}
// Ole persists
- for ( std::vector<PPTExOleObjEntry*>::const_iterator it = maExOleObj.begin(); it != maExOleObj.end(); ++it )
+ for ( auto it = maExOleObj.begin(); it != maExOleObj.end(); ++it )
{
- PPTExOleObjEntry* pPtr = *it;
+ PPTExOleObjEntry* pPtr = it->get();
nOfs = mpPptEscherEx->PtGetOffsetByID( EPP_Persist_ExObj );
if ( nOfs )
{
diff --git a/sd/source/filter/eppt/eppt.hxx b/sd/source/filter/eppt/eppt.hxx
index af9f8d37e301..749b74123900 100644
--- a/sd/source/filter/eppt/eppt.hxx
+++ b/sd/source/filter/eppt/eppt.hxx
@@ -161,16 +161,16 @@ class PPTWriter final : public PPTWriterBase, public PPTExBulletProvider
sal_uInt32 mnTextSize;
tools::SvRef<SotStorage> mrStg;
- SvStream* mpCurUserStrm;
- SvStream* mpStrm;
- SvStream* mpPicStrm;
- PptEscherEx* mpPptEscherEx;
+ std::unique_ptr<SvStream> mpCurUserStrm;
+ std::unique_ptr<SvStream> mpStrm;
+ std::unique_ptr<SvStream> mpPicStrm;
+ std::unique_ptr<PptEscherEx> mpPptEscherEx;
- std::vector<PPTExOleObjEntry*> maExOleObj;
+ std::vector<std::unique_ptr<PPTExOleObjEntry>> maExOleObj;
sal_uInt32 mnVBAOleOfs;
SvMemoryStream* mpVBA;
sal_uInt32 mnExEmbed;
- SvMemoryStream* mpExEmbed;
+ std::unique_ptr<SvMemoryStream> mpExEmbed;
sal_uInt32 mnPagesWritten;
sal_uInt32 mnTxId; // Identifier determined by the HOST (PP) ????
diff --git a/sd/source/filter/eppt/epptbase.hxx b/sd/source/filter/eppt/epptbase.hxx
index 463067087503..b0b391697f5a 100644
--- a/sd/source/filter/eppt/epptbase.hxx
+++ b/sd/source/filter/eppt/epptbase.hxx
@@ -344,7 +344,7 @@ protected:
css::awt::Size maNotesPageSize;
PageType meLatestPageType;
- std::vector< PPTExStyleSheet* > maStyleSheetList;
+ std::vector< std::unique_ptr<PPTExStyleSheet> > maStyleSheetList;
PPTExStyleSheet* mpStyleSheet;
FontCollection maFontCollection;
diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx
index 7f9ab18f795a..c6a1dad60b95 100644
--- a/sd/source/filter/eppt/epptso.cxx
+++ b/sd/source/filter/eppt/epptso.cxx
@@ -535,8 +535,8 @@ bool PPTWriter::ImplCloseDocument()
mpStrm->WriteBytes(aTxMasterStyleAtomStrm.GetData(), aTxMasterStyleAtomStrm.Tell());
maSoundCollection.Write( *mpStrm );
mpPptEscherEx->WriteDrawingGroupContainer( *mpStrm );
- ImplMasterSlideListContainer( mpStrm );
- ImplDocumentListContainer( mpStrm );
+ ImplMasterSlideListContainer( mpStrm.get() );
+ ImplDocumentListContainer( mpStrm.get() );
sal_uInt32 nOldPos = mpPptEscherEx->PtGetOffsetByID( EPP_Persist_CurrentPos );
if ( nOldPos )
@@ -828,7 +828,7 @@ void PPTWriter::ImplWritePortions( SvStream& rOut, TextObj& rTextObj )
case css::drawing::FillStyle_GRADIENT :
{
::tools::Rectangle aRect( Point(), Size( 28000, 21000 ) );
- EscherPropertyContainer aPropOpt( mpPptEscherEx->GetGraphicProvider(), mpPicStrm, aRect );
+ EscherPropertyContainer aPropOpt( mpPptEscherEx->GetGraphicProvider(), mpPicStrm.get(), aRect );
aPropOpt.CreateGradientProperties( mXPropSet );
aPropOpt.GetOpt( ESCHER_Prop_fillColor, nBackgroundColor );
}
@@ -850,7 +850,7 @@ void PPTWriter::ImplWritePortions( SvStream& rOut, TextObj& rTextObj )
case css::drawing::FillStyle_GRADIENT :
{
::tools::Rectangle aRect( Point(), Size( 28000, 21000 ) );
- EscherPropertyContainer aPropOpt( mpPptEscherEx->GetGraphicProvider(), mpPicStrm, aRect );
+ EscherPropertyContainer aPropOpt( mpPptEscherEx->GetGraphicProvider(), mpPicStrm.get(), aRect );
aPropOpt.CreateGradientProperties( mXBackgroundPropSet );
aPropOpt.GetOpt( ESCHER_Prop_fillColor, nBackgroundColor );
}
@@ -1693,7 +1693,7 @@ void PPTWriter::ImplWritePage( const PHLayout& rLayout, EscherSolverContainer& a
const css::awt::Size aSize100thmm( mXShape->getSize() );
const css::awt::Point aPoint100thmm( mXShape->getPosition() );
::tools::Rectangle aRect100thmm( Point( aPoint100thmm.X, aPoint100thmm.Y ), Size( aSize100thmm.Width, aSize100thmm.Height ) );
- EscherPropertyContainer aPropOpt( mpPptEscherEx->GetGraphicProvider(), mpPicStrm, aRect100thmm );
+ EscherPropertyContainer aPropOpt( mpPptEscherEx->GetGraphicProvider(), mpPicStrm.get(), aRect100thmm );
if ( bGroup )
{
@@ -1957,10 +1957,10 @@ void PPTWriter::ImplWritePage( const PHLayout& rLayout, EscherSolverContainer& a
mpExEmbed->WriteUInt32( EPP_ExControlAtom << 16 )
.WriteUInt32( 4 )
.WriteUInt32( nPageId );
- PPTExOleObjEntry* pEntry = new PPTExOleObjEntry( OCX_CONTROL, mpExEmbed->Tell() );
+ std::unique_ptr<PPTExOleObjEntry> pEntry( new PPTExOleObjEntry( OCX_CONTROL, mpExEmbed->Tell() ) );
pEntry->xControlModel = aXControlModel;
pEntry->xShape = mXShape;
- maExOleObj.push_back( pEntry );
+ maExOleObj.push_back( std::move(pEntry) );
mnExEmbed++;
@@ -2409,7 +2409,7 @@ void PPTWriter::ImplWritePage( const PHLayout& rLayout, EscherSolverContainer& a
else
mpStrm->WriteUInt32( EPP_TEXTTYPE_Body );
mnTextSize = aTextObj.Count();
- aTextObj.Write( mpStrm );
+ aTextObj.Write( mpStrm.get() );
mpPptEscherEx->BeginAtom();
for ( sal_uInt32 i = 0; i < aTextObj.ParagraphCount() ; ++i )
{
@@ -2516,9 +2516,9 @@ void PPTWriter::ImplWritePage( const PHLayout& rLayout, EscherSolverContainer& a
.WriteUChar( 0 ) // (bool)is object a world table
.WriteUChar( 0 ); // pad byte
- PPTExOleObjEntry* pE = new PPTExOleObjEntry( NORMAL_OLE_OBJECT, mpExEmbed->Tell() );
+ std::unique_ptr<PPTExOleObjEntry> pE( new PPTExOleObjEntry( NORMAL_OLE_OBJECT, mpExEmbed->Tell() ) );
pE->xShape = mXShape;
- maExOleObj.push_back( pE );
+ maExOleObj.push_back( std::move(pE) );
mnExEmbed++;
@@ -3105,8 +3105,8 @@ void PPTWriter::ImplCreateTable( uno::Reference< drawing::XShape > const & rXSha
if ( y == nRowCount - 1 && nPosition != maRect.Bottom())
maRect.SetBottom( nPosition );
}
- std::unique_ptr<ContainerGuard> xSpgrContainer(new ContainerGuard(mpPptEscherEx, ESCHER_SpgrContainer));
- std::unique_ptr<ContainerGuard> xSpContainer(new ContainerGuard(mpPptEscherEx, ESCHER_SpContainer));
+ std::unique_ptr<ContainerGuard> xSpgrContainer(new ContainerGuard(mpPptEscherEx.get(), ESCHER_SpgrContainer));
+ std::unique_ptr<ContainerGuard> xSpContainer(new ContainerGuard(mpPptEscherEx.get(), ESCHER_SpContainer));
mpPptEscherEx->AddAtom( 16, ESCHER_Spgr, 1 );
mpStrm ->WriteInt32( maRect.Left() ) // Bounding box for the grouped shapes to which they are attached
.WriteInt32( maRect.Top() )
@@ -3164,7 +3164,7 @@ void PPTWriter::ImplCreateTable( uno::Reference< drawing::XShape > const & rXSha
aAny >>= mbFontIndependentLineSpacing;
EscherPropertyContainer aPropOptSp;
- std::unique_ptr<ContainerGuard> xCellContainer(new ContainerGuard(mpPptEscherEx, ESCHER_SpContainer));
+ std::unique_ptr<ContainerGuard> xCellContainer(new ContainerGuard(mpPptEscherEx.get(), ESCHER_SpContainer));
ImplCreateShape( ESCHER_ShpInst_Rectangle,
ShapeFlag::HaveAnchor | ShapeFlag::HaveShapeProperty | ShapeFlag::Child,
aSolverContainer );
diff --git a/sd/source/filter/eppt/pptx-epptbase.cxx b/sd/source/filter/eppt/pptx-epptbase.cxx
index 84bbcc53dc28..b3e1c4787645 100644
--- a/sd/source/filter/eppt/pptx-epptbase.cxx
+++ b/sd/source/filter/eppt/pptx-epptbase.cxx
@@ -499,7 +499,7 @@ void PPTWriterBase::SetCurrentStyleSheet( sal_uInt32 nPageNum )
{
if ( nPageNum >= maStyleSheetList.size() )
nPageNum = 0;
- mpStyleSheet = maStyleSheetList[ nPageNum ];
+ mpStyleSheet = maStyleSheetList[ nPageNum ].get();
}
bool PPTWriterBase::GetStyleSheets()
@@ -526,7 +526,7 @@ bool PPTWriterBase::GetStyleSheets()
? static_cast<sal_uInt16>( *o3tl::doAccess<sal_Int32>(mAny) / 4.40972 )
: 1250;
- maStyleSheetList.push_back( new PPTExStyleSheet( nDefaultTab, dynamic_cast<PPTExBulletProvider*>(this) ) );
+ maStyleSheetList.emplace_back( new PPTExStyleSheet( nDefaultTab, dynamic_cast<PPTExBulletProvider*>(this) ) );
SetCurrentStyleSheet( nPageNum );
if ( GetPageByIndex( nPageNum, MASTER ) )
aXNamed.set( mXDrawPage, UNO_QUERY );