[Libreoffice-commits] core.git: filter/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Sun Oct 21 13:24:36 UTC 2018
filter/source/msfilter/svdfppt.cxx | 43 ++++++++++++++++++-------------------
1 file changed, 22 insertions(+), 21 deletions(-)
New commits:
commit 33a8afeda6e1b6325f42790a0e1cc3c6cca8409f
Author: Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Sun Oct 21 14:00:13 2018 +0200
Commit: Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Sun Oct 21 15:24:15 2018 +0200
tdf#120703 (PVS)
V668 There is no sense in testing the 'pBuf' pointer against null, as the
memory was allocated using the 'new' operator. The exception will be
generated in the case of memory allocation error.
V547 Expression 'ePageKind == PPT_NOTEPAGE' is always true.
V581 The conditional expressions of the 'if' statements situated alongside
each other are identical. Check lines: 3724, 3727.
V1023 A pointer without owner is added to the 'aCharPropList' container
by the 'emplace_back' method. A memory leak will occur in case of
an exception.
Change-Id: I5edae28a6ca1023a512fd5f86208951d439db941
Reviewed-on: https://gerrit.libreoffice.org/62131
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index 687943db3950..581788294902 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -2079,15 +2079,12 @@ void SdrPowerPointImport::SeekOle( SfxObjectShell* pShell, sal_uInt32 nFilterOpt
sal_uInt32 nToCopy, nBufSize;
nToCopy = pHd->nRecLen;
std::unique_ptr<sal_uInt8[]> pBuf(new sal_uInt8[ 0x40000 ]); // 256KB Buffer
- if ( pBuf )
+ while ( nToCopy )
{
- while ( nToCopy )
- {
- nBufSize = ( nToCopy >= 0x40000 ) ? 0x40000 : nToCopy;
- rStCtrl.ReadBytes(pBuf.get(), nBufSize);
- xOriginal->WriteBytes(pBuf.get(), nBufSize);
- nToCopy -= nBufSize;
- }
+ nBufSize = ( nToCopy >= 0x40000 ) ? 0x40000 : nToCopy;
+ rStCtrl.ReadBytes(pBuf.get(), nBufSize);
+ xOriginal->WriteBytes(pBuf.get(), nBufSize);
+ nToCopy -= nBufSize;
}
}
}
@@ -2203,12 +2200,15 @@ bool SdrPowerPointImport::ReadFontCollection()
PptSlidePersistList* SdrPowerPointImport::GetPageList(PptPageKind ePageKind) const
{
- if ( ePageKind == PPT_MASTERPAGE )
- return m_pMasterPages.get();
- if ( ePageKind == PPT_SLIDEPAGE )
- return m_pSlidePages.get();
- if ( ePageKind == PPT_NOTEPAGE )
- return m_pNotePages.get();
+ switch (ePageKind)
+ {
+ case PPT_MASTERPAGE:
+ return m_pMasterPages.get();
+ case PPT_SLIDEPAGE:
+ return m_pSlidePages.get();
+ case PPT_NOTEPAGE:
+ return m_pNotePages.get();
+ }
return nullptr;
}
@@ -3723,10 +3723,8 @@ bool PPTNumberFormatCreator::GetNumberFormat( SdrPowerPointImport const & rManag
if ( rNumberFormat.GetNumberingType() != SVX_NUM_BITMAP )
pParaObj->UpdateBulletRelSize( nBulletHeight );
if ( nHardCount )
- ImplGetNumberFormat( rManager, rNumberFormat );
-
- if ( nHardCount )
{
+ ImplGetNumberFormat( rManager, rNumberFormat );
switch ( rNumberFormat.GetNumberingType() )
{
case SVX_NUM_CHARS_UPPER_LETTER :
@@ -5295,7 +5293,7 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe
bTextPropAtom, nExtParaPos, aStyleTextProp9, nExtParaFlags,
nBuBlip, nHasAnm, nAnmScheme );
- aCharPropList.emplace_back( new PPTCharPropSet( aCharPropSet, 0 ) );
+ aCharPropList.push_back(o3tl::make_unique<PPTCharPropSet>(aCharPropSet, 0));
}
}
@@ -5356,7 +5354,8 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe
else if ( bEmptyParaPossible )
aCharPropSet.maString.clear();
if ( nLen || bEmptyParaPossible )
- aCharPropList.emplace_back( new PPTCharPropSet( aCharPropSet, nCurrentPara ) );
+ aCharPropList.push_back(
+ o3tl::make_unique<PPTCharPropSet>(aCharPropSet, nCurrentPara));
nCurrentPara++;
nLen++;
nCharReadCnt += nLen;
@@ -5369,7 +5368,8 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe
{
nLen = ( nCurrentSpecMarker & 0xffff ) - nCharReadCnt;
aCharPropSet.maString = aString.copy(nCharReadCnt, nLen);
- aCharPropList.emplace_back( new PPTCharPropSet( aCharPropSet, nCurrentPara ) );
+ aCharPropList.push_back(
+ o3tl::make_unique<PPTCharPropSet>(aCharPropSet, nCurrentPara));
nCharCount -= nLen;
nCharReadCnt += nLen;
}
@@ -5396,7 +5396,8 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe
nStrLen = nMaxStrLen;
aCharPropSet.maString = aString.copy(nCharReadCnt, nStrLen);
}
- aCharPropList.emplace_back( new PPTCharPropSet( aCharPropSet, nCurrentPara ) );
+ aCharPropList.push_back(
+ o3tl::make_unique<PPTCharPropSet>(aCharPropSet, nCurrentPara));
nCharReadCnt += nCharCount;
bEmptyParaPossible = false;
break;
More information about the Libreoffice-commits
mailing list