diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-03-19 14:32:28 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-03-20 07:49:40 +0100 |
commit | 59e68b30d6695efa65244cf7132417036b0fba63 (patch) | |
tree | e691b709158e74ea898c96c4dfa321808dc131a8 | |
parent | 79b2f1cb36ea4fec61b0620085313eb53fce9fa0 (diff) |
loplugin:useuniqueptr in PPTStyleTextPropReader
Change-Id: I5110ef58302323a59b52cc5451ddba4caa00b6d9
Reviewed-on: https://gerrit.libreoffice.org/51553
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r-- | filter/source/msfilter/svdfppt.cxx | 50 | ||||
-rw-r--r-- | include/filter/msfilter/svdfppt.hxx | 7 |
2 files changed, 25 insertions, 32 deletions
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx index bb466a71ec14..19f5863a4036 100644 --- a/filter/source/msfilter/svdfppt.cxx +++ b/filter/source/msfilter/svdfppt.cxx @@ -5079,7 +5079,7 @@ void PPTStyleTextPropReader::ReadParaProps( SvStream& rIn, const DffRecordHeader } PPTParaPropSet* pPara = new PPTParaPropSet( aParaPropSet ); pPara->mnOriginalTextPos = nCharReadCnt; - aParaPropList.push_back( pPara ); + aParaPropList.emplace_back( pPara ); if ( nCharCount ) { sal_uInt32 nCount; @@ -5090,7 +5090,7 @@ void PPTStyleTextPropReader::ReadParaProps( SvStream& rIn, const DffRecordHeader { pPara = new PPTParaPropSet( aParaPropSet ); pPara->mnOriginalTextPos = nCharReadCnt + nCount + 1; - aParaPropList.push_back( pPara ); + aParaPropList.emplace_back( pPara ); } } } @@ -5294,7 +5294,7 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe bTextPropAtom, nExtParaPos, aStyleTextProp9, nExtParaFlags, nBuBlip, nHasAnm, nAnmScheme ); - aCharPropList.push_back( new PPTCharPropSet( aCharPropSet, 0 ) ); + aCharPropList.emplace_back( new PPTCharPropSet( aCharPropSet, 0 ) ); } } @@ -5334,7 +5334,7 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe { if ( nExtParaPos && ( nLatestParaUpdate != nCurrentPara ) && ( nCurrentPara < aParaPropList.size() ) ) { - PPTParaPropSet* pPropSet = aParaPropList[ nCurrentPara ]; + PPTParaPropSet* pPropSet = aParaPropList[ nCurrentPara ].get(); pPropSet->mxParaSet->mnExtParagraphMask = nExtParaFlags; if ( nExtParaFlags & 0x800000 ) pPropSet->mxParaSet->mnBuBlip = nBuBlip; @@ -5355,7 +5355,7 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe else if ( bEmptyParaPossible ) aCharPropSet.maString.clear(); if ( nLen || bEmptyParaPossible ) - aCharPropList.push_back( new PPTCharPropSet( aCharPropSet, nCurrentPara ) ); + aCharPropList.emplace_back( new PPTCharPropSet( aCharPropSet, nCurrentPara ) ); nCurrentPara++; nLen++; nCharReadCnt += nLen; @@ -5368,7 +5368,7 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe { nLen = ( nCurrentSpecMarker & 0xffff ) - nCharReadCnt; aCharPropSet.maString = aString.copy(nCharReadCnt, nLen); - aCharPropList.push_back( new PPTCharPropSet( aCharPropSet, nCurrentPara ) ); + aCharPropList.emplace_back( new PPTCharPropSet( aCharPropSet, nCurrentPara ) ); nCharCount -= nLen; nCharReadCnt += nLen; } @@ -5376,7 +5376,7 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe pCPropSet->maString = aString.copy(nCharReadCnt, 1); if ( aCharPropSet.mpImplPPTCharPropSet->mnAttrSet & ( 1 << PPT_CharAttr_Symbol ) ) pCPropSet->SetFont( aCharPropSet.mpImplPPTCharPropSet->mnSymbolFont ); - aCharPropList.push_back( pCPropSet ); + aCharPropList.emplace_back( pCPropSet ); nCharCount--; nCharReadCnt++; bEmptyParaPossible = false; @@ -5395,7 +5395,7 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe nStrLen = nMaxStrLen; aCharPropSet.maString = aString.copy(nCharReadCnt, nStrLen); } - aCharPropList.push_back( new PPTCharPropSet( aCharPropSet, nCurrentPara ) ); + aCharPropList.emplace_back( new PPTCharPropSet( aCharPropSet, nCurrentPara ) ); nCharReadCnt += nCharCount; bEmptyParaPossible = false; break; @@ -5407,7 +5407,7 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe PPTCharPropSet* pCharPropSet = new PPTCharPropSet( *aCharPropList.back(), nCurrentPara ); pCharPropSet->maString.clear(); pCharPropSet->mnOriginalTextPos = nStringLen - 1; - aCharPropList.push_back( pCharPropSet ); + aCharPropList.emplace_back( pCharPropSet ); } } rIn.Seek( nMerk ); @@ -5415,10 +5415,6 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe PPTStyleTextPropReader::~PPTStyleTextPropReader() { - for (auto const& paraProp : aParaPropList) - delete paraProp; - for (auto const& charProp : aCharPropList) - delete charProp; } PPTPortionObj::PPTPortionObj( const PPTStyleSheet& rStyleSheet, TSS_Type nInstance, sal_uInt32 nDepth ) : @@ -5855,7 +5851,7 @@ PPTParagraphObj::PPTParagraphObj( PPTStyleTextPropReader& rPropReader, ++rnCurCharPos) { PPTCharPropSet *const pCharPropSet = - rPropReader.aCharPropList[rnCurCharPos]; + rPropReader.aCharPropList[rnCurCharPos].get(); std::unique_ptr<PPTPortionObj> pPPTPortion(new PPTPortionObj( *pCharPropSet, rStyleSheet, nInstance, mxParaSet->mnDepth)); if (!mbTab) @@ -6692,7 +6688,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport if ( aTextSpecInfoAtomInterpreter.Read( rIn, aTextSpecInfoHd, PPT_PST_TextSpecInfoAtom, &(rSdrPowerPointImport.pPPTStyleSheet->maTxSI) ) ) { - PPTCharPropSetList::size_type nI = 0; + size_t nI = 0; for (PPTTextSpecInfo& rSpecInfo : aTextSpecInfoAtomInterpreter.aList) { sal_uInt32 nCharIdx = rSpecInfo.nCharIdx; @@ -6700,7 +6696,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport // portions and text have to been splitted in some cases for ( ; nI < aStyleTextPropReader.aCharPropList.size(); ++nI) { - PPTCharPropSet* pSet = aStyleTextPropReader.aCharPropList[nI]; + PPTCharPropSet* pSet = aStyleTextPropReader.aCharPropList[nI].get(); if (pSet->mnOriginalTextPos >= nCharIdx) break; pSet->mnLanguage[0] = rSpecInfo.nLanguage[0]; @@ -6721,7 +6717,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport pSet->maString = aString.copy(0, nOldLen); pNew->maString = aString.copy(nOldLen, nNewLen); pNew->mnOriginalTextPos += nOldLen; - aStyleTextPropReader.aCharPropList.insert(aStyleTextPropReader.aCharPropList.begin() + nI + 1, pNew); + aStyleTextPropReader.aCharPropList.emplace(aStyleTextPropReader.aCharPropList.begin() + nI + 1, pNew); } } } @@ -6930,7 +6926,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport if ( !FieldList.empty() ) { ::std::vector< PPTFieldEntry* >::iterator FE = FieldList.begin(); - PPTCharPropSetList& aCharPropList = aStyleTextPropReader.aCharPropList; + auto& aCharPropList = aStyleTextPropReader.aCharPropList; sal_Int32 i = nParagraphs - 1; sal_Int32 n = aCharPropList.size() - 1; @@ -6939,7 +6935,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport // the next while loop tries to resolve the list of fields(pFieldList) while( ( FE < FieldList.end() ) && ( n >= 0 ) && ( i >= 0 ) ) { - PPTCharPropSet* pSet = aCharPropList[n]; + PPTCharPropSet* pSet = aCharPropList[n].get(); OUString aString( pSet->maString ); sal_uInt32 nCount = aString.getLength(); sal_uInt32 nPos = pSet->mnOriginalTextPos + nCount; @@ -6961,23 +6957,23 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport { PPTCharPropSet* pNewCPS = new PPTCharPropSet( *pSet ); pNewCPS->maString = aString.copy( nCount + 1, nBehind ); - aCharPropList.insert( aCharPropList.begin() + n + 1, pNewCPS ); + aCharPropList.emplace( aCharPropList.begin() + n + 1, pNewCPS ); } if ( (*FE)->xField2 ) { PPTCharPropSet* pNewCPS = new PPTCharPropSet( *pSet ); pNewCPS->mpFieldItem = std::move((*FE)->xField2); - aCharPropList.insert( aCharPropList.begin() + n + 1, pNewCPS ); + aCharPropList.emplace( aCharPropList.begin() + n + 1, pNewCPS ); pNewCPS = new PPTCharPropSet( *pSet ); pNewCPS->maString = " "; - aCharPropList.insert( aCharPropList.begin() + n + 1, pNewCPS ); + aCharPropList.emplace( aCharPropList.begin() + n + 1, pNewCPS ); } if ( nCount ) { PPTCharPropSet* pNewCPS = new PPTCharPropSet( *pSet ); pNewCPS->maString = aString.copy( 0, nCount ); - aCharPropList.insert( aCharPropList.begin() + n++, pNewCPS ); + aCharPropList.emplace( aCharPropList.begin() + n++, pNewCPS ); } if ( (*FE)->xField1 ) { @@ -7007,7 +7003,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport // the textrange hyperlink can take more than 1 paragraph // the solution here is to clone the hyperlink... - PPTCharPropSet* pCurrent = aCharPropList[ nIdx ]; + PPTCharPropSet* pCurrent = aCharPropList[ nIdx ].get(); sal_Int32 nNextStringLen = pCurrent->maString.getLength(); DBG_ASSERT( (*FE)->xField1, "missing field!" ); @@ -7040,7 +7036,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport // the textrange is to decrease (because of the LineBreak character) if ( aCharPropList.size() > ( nIdx + 1 ) ) { - PPTCharPropSet* pNext = aCharPropList[ nIdx + 1 ]; + PPTCharPropSet* pNext = aCharPropList[ nIdx + 1 ].get(); if ( pNext->mnParagraph > pCurrent->mnParagraph ) nHyperLenLeft--; } @@ -7050,7 +7046,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport { PPTCharPropSet* pNewCPS = new PPTCharPropSet( *pCurrent ); pNewCPS->maString = pCurrent->maString.copy( nHyperLenLeft,( nNextStringLen - nHyperLenLeft ) ); - aCharPropList.insert( aCharPropList.begin() + nIdx + 1, pNewCPS ); + aCharPropList.emplace( aCharPropList.begin() + nIdx + 1, pNewCPS ); OUString aRepresentation = pCurrent->maString.copy( 0, nHyperLenLeft ); pCurrent->mpFieldItem.reset( new SvxFieldItem( SvxURLField( pField->GetURL(), aRepresentation, SvxURLFormat::Repr ), EE_FEATURE_FIELD ) ); nHyperLenLeft = 0; @@ -7065,7 +7061,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport if ( pBefCPS ) { pBefCPS->maString = aString.copy( 0, nCount ); - aCharPropList.insert( aCharPropList.begin() + n, pBefCPS ); + aCharPropList.emplace( aCharPropList.begin() + n, pBefCPS ); n++; } } diff --git a/include/filter/msfilter/svdfppt.hxx b/include/filter/msfilter/svdfppt.hxx index f125dc1b9604..d06c1a4c4e42 100644 --- a/include/filter/msfilter/svdfppt.hxx +++ b/include/filter/msfilter/svdfppt.hxx @@ -1052,14 +1052,11 @@ struct StyleTextProp9 void Read( SvStream& rSt ); }; -typedef std::vector<PPTParaPropSet*> PPTParaPropSetList; -typedef std::vector<PPTCharPropSet*> PPTCharPropSetList; - struct PPTStyleTextPropReader { std::vector< sal_uInt32 > aSpecMarkerList; // hiword -> Flags, loword -> Position - PPTParaPropSetList aParaPropList; - PPTCharPropSetList aCharPropList; + std::vector<std::unique_ptr<PPTParaPropSet>> aParaPropList; + std::vector<std::unique_ptr<PPTCharPropSet>> aCharPropList; PPTStyleTextPropReader( SvStream& rIn, |