[Libreoffice-commits] core.git: filter/source include/filter sd/source
Noel Grandin
noel.grandin at collabora.co.uk
Mon Mar 5 11:44:54 UTC 2018
filter/source/msfilter/svdfppt.cxx | 32 ++++++++++-------------
include/filter/msfilter/svdfppt.hxx | 8 ++---
sd/source/filter/ppt/pptin.cxx | 49 ++++++++++++++++--------------------
3 files changed, 41 insertions(+), 48 deletions(-)
New commits:
commit 4245454d0c3d6df2d0e0a75aed6f22f0a26ce3e2
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Wed Feb 28 15:50:29 2018 +0200
loplugin:useuniqueptr in SdrPowerPointImport
Change-Id: I9a8d1669cbd94f73dc75e4b7339910f8201e06aa
Reviewed-on: https://gerrit.libreoffice.org/50695
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index 8de6562a9c71..c9997744421b 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -1498,9 +1498,9 @@ SdrPowerPointImport::SdrPowerPointImport( PowerPointImportParam& rParam, const O
// TODO:: PPT_PST_TxPFStyleAtom
// read SlidePersists
- m_pMasterPages = new PptSlidePersistList;
- m_pSlidePages = new PptSlidePersistList;
- m_pNotePages = new PptSlidePersistList;
+ m_pMasterPages.reset( new PptSlidePersistList );
+ m_pSlidePages.reset( new PptSlidePersistList );
+ m_pNotePages.reset( new PptSlidePersistList );
// now always creating the handout page, it will be the first in our masterpage list
std::unique_ptr<PptSlidePersistEntry> pE(new PptSlidePersistEntry);
@@ -1655,13 +1655,9 @@ SdrPowerPointImport::SdrPowerPointImport( PowerPointImportParam& rParam, const O
SdrPowerPointImport::~SdrPowerPointImport()
{
- for (SdHyperlinkEntry* i : aHyperList) {
- delete i;
- }
- aHyperList.clear();
- delete m_pMasterPages;
- delete m_pSlidePages;
- delete m_pNotePages;
+ m_pMasterPages.reset();
+ m_pSlidePages.reset();
+ m_pNotePages.reset();
}
bool PPTConvertOCXControls::ReadOCXStream( tools::SvRef<SotStorage>& rSrc,
@@ -2196,11 +2192,11 @@ bool SdrPowerPointImport::ReadFontCollection()
PptSlidePersistList* SdrPowerPointImport::GetPageList(PptPageKind ePageKind) const
{
if ( ePageKind == PPT_MASTERPAGE )
- return m_pMasterPages;
+ return m_pMasterPages.get();
if ( ePageKind == PPT_SLIDEPAGE )
- return m_pSlidePages;
+ return m_pSlidePages.get();
if ( ePageKind == PPT_NOTEPAGE )
- return m_pNotePages;
+ return m_pNotePages.get();
return nullptr;
}
@@ -6874,9 +6870,9 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport
{
PptInteractiveInfoAtom aInteractiveInfoAtom;
ReadPptInteractiveInfoAtom( rIn, aInteractiveInfoAtom );
- for (SdHyperlinkEntry* pHyperlink : rSdrPowerPointImport.aHyperList)
+ for (SdHyperlinkEntry& rHyperlink : rSdrPowerPointImport.aHyperList)
{
- if ( pHyperlink->nIndex == aInteractiveInfoAtom.nExHyperlinkId )
+ if ( rHyperlink.nIndex == aInteractiveInfoAtom.nExHyperlinkId )
{
if (!aTextHd.SeekToEndOfRecord(rIn))
{
@@ -6898,11 +6894,11 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport
xEntry.reset(new PPTFieldEntry);
xEntry->nPos = static_cast<sal_uInt16>(nStartPos);
xEntry->nTextRangeEnd = static_cast<sal_uInt16>(nEndPos);
- OUString aTarget( pHyperlink->aTarget );
- if ( !pHyperlink->aConvSubString.isEmpty() )
+ OUString aTarget( rHyperlink.aTarget );
+ if ( !rHyperlink.aConvSubString.isEmpty() )
{
aTarget += "#";
- aTarget += pHyperlink->aConvSubString;
+ aTarget += rHyperlink.aConvSubString;
}
xEntry->xField1.reset(new SvxFieldItem( SvxURLField( aTarget, OUString(), SvxURLFormat::Repr ), EE_FEATURE_FIELD ));
}
diff --git a/include/filter/msfilter/svdfppt.hxx b/include/filter/msfilter/svdfppt.hxx
index 6dda302f4691..fe6a294cd9b1 100644
--- a/include/filter/msfilter/svdfppt.hxx
+++ b/include/filter/msfilter/svdfppt.hxx
@@ -558,7 +558,7 @@ protected:
bool bOk;
PptUserEditAtom aUserEditAtom;
PptColorSchemeAtom aPageColors;
- ::std::vector< SdHyperlinkEntry* > aHyperList;
+ ::std::vector< SdHyperlinkEntry > aHyperList;
std::unique_ptr<sal_uInt32[]>
pPersistPtr;
sal_uInt32 nPersistPtrCnt;
@@ -566,9 +566,9 @@ protected:
const PPTStyleSheet* pPPTStyleSheet; // this is the current stylesheet;
const PPTStyleSheet* pDefaultSheet; // this is a sheet we are using if no masterpage can be found, but that should
// never happen just preventing a crash
- PptSlidePersistList* m_pMasterPages;
- PptSlidePersistList* m_pSlidePages;
- PptSlidePersistList* m_pNotePages;
+ std::unique_ptr<PptSlidePersistList> m_pMasterPages;
+ std::unique_ptr<PptSlidePersistList> m_pSlidePages;
+ std::unique_ptr<PptSlidePersistList> m_pNotePages;
sal_uInt16 nAktPageNum;
sal_uLong nDocStreamPos;
sal_uInt16 nPageColorsNum;
diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx
index 3e8c16943e92..249de3d1d09e 100644
--- a/sd/source/filter/ppt/pptin.cxx
+++ b/sd/source/filter/ppt/pptin.cxx
@@ -393,41 +393,40 @@ bool ImplSdPPTImport::Import()
nPropCount /= 6; // 6 properties per hyperlink
- SdHyperlinkEntry* pHyperlink = nullptr;
+ SdHyperlinkEntry aHyperlink;
for ( i = 0; i < nPropCount; i++ )
{
- pHyperlink = new SdHyperlinkEntry;
- pHyperlink->nIndex = 0;
+ aHyperlink.nIndex = 0;
aPropItem.ReadUInt32( nType );
if ( nType != VT_I4 )
break;
- aPropItem.ReadInt32( pHyperlink->nPrivate1 )
+ aPropItem.ReadInt32( aHyperlink.nPrivate1 )
.ReadUInt32( nType );
if ( nType != VT_I4 )
break;
- aPropItem.ReadInt32( pHyperlink->nPrivate2 )
+ aPropItem.ReadInt32( aHyperlink.nPrivate2 )
.ReadUInt32( nType );
if ( nType != VT_I4 )
break;
- aPropItem.ReadInt32( pHyperlink->nPrivate3 )
+ aPropItem.ReadInt32( aHyperlink.nPrivate3 )
.ReadUInt32( nType );
if ( nType != VT_I4 )
break;
- aPropItem.ReadInt32( pHyperlink->nInfo );
- if ( !aPropItem.Read( pHyperlink->aTarget ) )
+ aPropItem.ReadInt32( aHyperlink.nInfo );
+ if ( !aPropItem.Read( aHyperlink.aTarget ) )
break;
// Convert '\\' notation to 'smb://'
- INetURLObject aUrl( pHyperlink->aTarget, INetProtocol::File );
- pHyperlink->aTarget = aUrl.GetMainURL( INetURLObject::DecodeMechanism::NONE );
+ INetURLObject aUrl( aHyperlink.aTarget, INetProtocol::File );
+ aHyperlink.aTarget = aUrl.GetMainURL( INetURLObject::DecodeMechanism::NONE );
- if ( !aPropItem.Read( pHyperlink->aSubAdress ) )
+ if ( !aPropItem.Read( aHyperlink.aSubAdress ) )
break;
- if ( !pHyperlink->aSubAdress.isEmpty() ) // get the converted subaddress
+ if ( !aHyperlink.aSubAdress.isEmpty() ) // get the converted subaddress
{
sal_uInt32 nPageNumber = 0;
- OUString aString( pHyperlink->aSubAdress );
+ OUString aString( aHyperlink.aSubAdress );
OString aStringAry[ 3 ];
size_t nTokenCount = 0;
sal_Int32 nPos = 0;
@@ -497,23 +496,21 @@ bool ImplSdPPTImport::Import()
if ( bDocInternalSubAddress )
{
if ( nPageNumber < maSlideNameList.size() )
- pHyperlink->aConvSubString = maSlideNameList[ nPageNumber ];
- if ( pHyperlink->aConvSubString.isEmpty() )
+ aHyperlink.aConvSubString = maSlideNameList[ nPageNumber ];
+ if ( aHyperlink.aConvSubString.isEmpty() )
{
- pHyperlink->aConvSubString = SdResId( STR_PAGE ) + " " + ( mpDoc->CreatePageNumValue( static_cast<sal_uInt16>(nPageNumber) + 1 ) );
+ aHyperlink.aConvSubString = SdResId( STR_PAGE ) + " " + ( mpDoc->CreatePageNumValue( static_cast<sal_uInt16>(nPageNumber) + 1 ) );
}
} else {
// if sub address is given but not internal, use it as it is
- if ( pHyperlink->aConvSubString.isEmpty() )
+ if ( aHyperlink.aConvSubString.isEmpty() )
{
- pHyperlink->aConvSubString = aString;
+ aHyperlink.aConvSubString = aString;
}
}
}
- aHyperList.push_back( pHyperlink );
+ aHyperList.push_back( aHyperlink );
}
- if ( i != nPropCount )
- delete pHyperlink;
}
}
}
@@ -532,7 +529,7 @@ bool ImplSdPPTImport::Import()
if ( SeekToRec( rStCtrl, PPT_PST_ExObjList, maDocHd.GetRecEndFilePos(), &aHyperHd ) )
{
sal_uInt32 nExObjHyperListLen = aHyperHd.GetRecEndFilePos();
- for (SdHyperlinkEntry* pPtr : aHyperList)
+ for (SdHyperlinkEntry & entry : aHyperList)
{
DffRecordHeader aHyperE;
if ( !SeekToRec( rStCtrl, PPT_PST_ExHyperlink, nExObjHyperListLen, &aHyperE ) )
@@ -540,7 +537,7 @@ bool ImplSdPPTImport::Import()
if ( !SeekToRec( rStCtrl, PPT_PST_ExHyperlinkAtom, nExObjHyperListLen ) )
break;
rStCtrl.SeekRel( 8 );
- rStCtrl.ReadUInt32( pPtr->nIndex );
+ rStCtrl.ReadUInt32( entry.nIndex );
if (!aHyperE.SeekToEndOfRecord(rStCtrl))
break;
}
@@ -2111,9 +2108,9 @@ void ImplSdPPTImport::FillSdAnimationInfo( SdAnimationInfo* pInfo, PptInteractiv
case 0x04 :
{
SdHyperlinkEntry* pPtr = nullptr;
- for (SdHyperlinkEntry* pEntry : aHyperList) {
- if ( pEntry->nIndex == pIAtom->nExHyperlinkId ) {
- pPtr = pEntry;
+ for (SdHyperlinkEntry & entry : aHyperList) {
+ if ( entry.nIndex == pIAtom->nExHyperlinkId ) {
+ pPtr = &entry;
break;
}
}
More information about the Libreoffice-commits
mailing list