diff options
author | Takeshi Abe <tabe@fixedpoint.jp> | 2014-10-05 11:40:03 +0900 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2014-10-06 14:09:20 +0000 |
commit | b1d48f0d9a3442c11adae6e36325a463d89ce44e (patch) | |
tree | c6e090cf71c2a9c9c49a37465af27ac14e1a31d1 | |
parent | 4108bd9b7a41eaa0f3bf8b8173f27f57e009ee34 (diff) |
fdo#75757: remove inheritance to std::vector
from PptSlidePersistList.
This also puts in assertions that every entry in a PptSlidePersistList
is non-null.
Cf. 9536a28ede89e8c29940e8ba225215a45667062c
Change-Id: Iea35532ed668e58a3f02d3f3433a66c2d4e1fe2a
Reviewed-on: https://gerrit.libreoffice.org/11807
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
-rw-r--r-- | filter/source/msfilter/svdfppt.cxx | 101 | ||||
-rw-r--r-- | include/filter/msfilter/svdfppt.hxx | 25 | ||||
-rw-r--r-- | sd/source/filter/ppt/pptin.cxx | 29 |
3 files changed, 79 insertions, 76 deletions
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx index 841a0ef4a541..e4c54f028c43 100644 --- a/filter/source/msfilter/svdfppt.cxx +++ b/filter/source/msfilter/svdfppt.cxx @@ -118,6 +118,7 @@ #include <svtools/embedhlp.hxx> #include <algorithm> +#include <cassert> #include <set> #include <rtl/strbuf.hxx> #include <tools/time.hxx> @@ -199,9 +200,9 @@ SvStream& ReadPptSlidePersistAtom( SvStream& rIn, PptSlidePersistAtom& rAtom ) sal_uInt16 PptSlidePersistList::FindPage(sal_uInt32 nId) const { - for ( sal_uInt16 i=0; i < size(); i++ ) + for ( sal_uInt16 i=0; i < mvEntries.size(); i++ ) { - if (operator[](i)->GetSlideId()==nId) return i; + if (mvEntries[ i ].GetSlideId()==nId) return i; } return PPTSLIDEPERSIST_ENTRY_NOTFOUND; } @@ -1529,8 +1530,8 @@ SdrPowerPointImport::SdrPowerPointImport( PowerPointImportParam& rParam, const O PptSlidePersistList* pPageList = GetPageList( PptPageKind( nPageListNum ) ); for ( sal_uInt16 nPageNum = 0; nPageNum < pPageList->size(); nPageNum++ ) { - PptSlidePersistEntry* pE2 = (*pPageList)[ nPageNum ]; - sal_uLong nPersist = pE2->aPersistAtom.nPsrReference; + PptSlidePersistEntry& rE2 = (*pPageList)[ nPageNum ]; + sal_uLong nPersist = rE2.aPersistAtom.nPsrReference; if ( ( nPersist > 0 ) && ( nPersist < nPersistPtrAnz ) ) { sal_uLong nFPos = pPersistPtr[ nPersist ]; @@ -1540,9 +1541,9 @@ SdrPowerPointImport::SdrPowerPointImport( PowerPointImportParam& rParam, const O DffRecordHeader aSlideHd; ReadDffRecordHeader( rStCtrl, aSlideHd ); if ( SeekToRec( rStCtrl, PPT_PST_SlideAtom, aSlideHd.GetRecEndFilePos() ) ) - ReadPptSlideAtom( rStCtrl, pE2->aSlideAtom ); + ReadPptSlideAtom( rStCtrl, rE2.aSlideAtom ); else if ( SeekToRec( rStCtrl, PPT_PST_NotesAtom, aSlideHd.GetRecEndFilePos() ) ) - ReadPptNotesAtom( rStCtrl, pE2->aNotesAtom ); + ReadPptNotesAtom( rStCtrl, rE2.aNotesAtom ); aSlideHd.SeekToContent( rStCtrl ); DffRecordHeader aPPTDrawingHd; @@ -1555,30 +1556,30 @@ SdrPowerPointImport::SdrPowerPointImport( PowerPointImportParam& rParam, const O { DffRecordHeader aDgRecordHeader; ReadDffRecordHeader( rStCtrl, aDgRecordHeader ); - pE2->nDrawingDgId = aDgRecordHeader.nRecInstance; + rE2.nDrawingDgId = aDgRecordHeader.nRecInstance; aDgRecordHeader.SeekToEndOfRecord( rStCtrl ); } if ( SeekToRec( rStCtrl, DFF_msofbtSolverContainer, aPPTDgContainer.GetRecEndFilePos() ) ) { - pE2->pSolverContainer = new SvxMSDffSolverContainer; - ReadSvxMSDffSolverContainer( rStCtrl, *( pE2->pSolverContainer ) ); + rE2.pSolverContainer = new SvxMSDffSolverContainer; + ReadSvxMSDffSolverContainer( rStCtrl, *( rE2.pSolverContainer ) ); } aPPTDgContainer.SeekToBegOfRecord( rStCtrl ); SetDgContainer( rStCtrl ); // set this, so that the escherimport is knowing of our drawings } } // office xp is supporting more than one stylesheet - if ( ( pE2->ePageKind == PPT_MASTERPAGE ) && ( pE2->aSlideAtom.nMasterId == 0 ) && ( pE2->bNotesMaster == false ) ) + if ( ( rE2.ePageKind == PPT_MASTERPAGE ) && ( rE2.aSlideAtom.nMasterId == 0 ) && ( rE2.bNotesMaster == false ) ) { PPTTextSpecInfo aTxSI( 0 ); if ( aTxSIStyle.bValid && !aTxSIStyle.aList.empty() ) aTxSI = *( aTxSIStyle.aList[ 0 ] ); - pE2->pStyleSheet = new PPTStyleSheet( aSlideHd, rStCtrl, *this, aTxCFStyle, aTxPFStyle, aTxSI ); - pDefaultSheet = pE2->pStyleSheet; + rE2.pStyleSheet = new PPTStyleSheet( aSlideHd, rStCtrl, *this, aTxCFStyle, aTxPFStyle, aTxSI ); + pDefaultSheet = rE2.pStyleSheet; } if ( SeekToRec( rStCtrl, PPT_PST_ColorSchemeAtom, aSlideHd.GetRecEndFilePos() ) ) - ReadPptColorSchemeAtom( rStCtrl, pE2->aColorScheme ); + ReadPptColorSchemeAtom( rStCtrl, rE2.aColorScheme ); else { OSL_FAIL( "SdrPowerPointImport::Ctor(): could not get SlideColorScheme! (SJ)" ); @@ -1604,10 +1605,10 @@ SdrPowerPointImport::SdrPowerPointImport( PowerPointImportParam& rParam, const O } for ( sal_uInt16 i = 0; i < pMasterPages->size(); i++ ) { - if ( (*pMasterPages)[ i ]->bNotesMaster ) - (*pMasterPages)[ i ]->pHeaderFooterEntry = new HeaderFooterEntry( aNotesMaster ); + if ( (*pMasterPages)[ i ].bNotesMaster ) + (*pMasterPages)[ i ].pHeaderFooterEntry = new HeaderFooterEntry( aNotesMaster ); else - (*pMasterPages)[ i ]->pHeaderFooterEntry = new HeaderFooterEntry( aNormalMaster ); + (*pMasterPages)[ i ].pHeaderFooterEntry = new HeaderFooterEntry( aNormalMaster ); } } } @@ -2383,7 +2384,7 @@ sal_uInt32 SdrPowerPointImport::GetAktPageId() { PptSlidePersistList* pList = GetPageList( eAktPageKind ); if ( pList && nAktPageNum < pList->size() ) - return (*pList)[ (sal_uInt16)nAktPageNum ]->aPersistAtom.nSlideId; + return (*pList)[ (sal_uInt16)nAktPageNum ].aPersistAtom.nSlideId; return 0; } @@ -2393,7 +2394,7 @@ bool SdrPowerPointImport::SeekToAktPage( DffRecordHeader* pRecHd ) const PptSlidePersistList* pList = GetPageList( eAktPageKind ); if ( pList && ( nAktPageNum < pList->size() ) ) { - sal_uLong nPersist = (*pList)[ (sal_uInt16)nAktPageNum ]->aPersistAtom.nPsrReference; + sal_uLong nPersist = (*pList)[ (sal_uInt16)nAktPageNum ].aPersistAtom.nPsrReference; if ( nPersist > 0 && nPersist < nPersistPtrAnz ) { sal_uLong nFPos = 0; @@ -2442,14 +2443,14 @@ void SdrPowerPointImport::SetPageNum( sal_uInt16 nPageNum, PptPageKind eKind ) PptSlidePersistList* pPageList = GetPageList( PPT_MASTERPAGE ); if ( pPageList && nMasterIndex < pPageList->size() ) { - PptSlidePersistEntry* pMasterPersist = (*pPageList)[ nMasterIndex ]; - if ( ( pMasterPersist->pStyleSheet == NULL ) && pMasterPersist->aSlideAtom.nMasterId ) + PptSlidePersistEntry& rMasterPersist = (*pPageList)[ nMasterIndex ]; + if ( ( rMasterPersist.pStyleSheet == NULL ) && rMasterPersist.aSlideAtom.nMasterId ) { - nMasterIndex = pMasterPages->FindPage( pMasterPersist->aSlideAtom.nMasterId ); + nMasterIndex = pMasterPages->FindPage( rMasterPersist.aSlideAtom.nMasterId ); if ( nMasterIndex != PPTSLIDEPERSIST_ENTRY_NOTFOUND ) - pMasterPersist = (*pPageList)[ nMasterIndex ]; + rMasterPersist = (*pPageList)[ nMasterIndex ]; } - pPPTStyleSheet = pMasterPersist->pStyleSheet; + pPPTStyleSheet = rMasterPersist.pStyleSheet; } } if ( !pPPTStyleSheet ) @@ -2494,13 +2495,11 @@ bool SdrPowerPointImport::GetColorFromPalette( sal_uInt16 nNum, Color& rColor ) PptSlidePersistList* pPageList = GetPageList( eAktPageKind ); if ( pPageList && ( nAktPageNum < pPageList->size() ) ) { - PptSlidePersistEntry* pE = (*pPageList)[ nAktPageNum ]; - if ( pE ) - { - nSlideFlags = pE->aSlideAtom.nFlags; - if ( ! ( nSlideFlags & 2 ) ) - ((SdrPowerPointImport*)this)->aPageColors = pE->aColorScheme; - } + assert( !pPageList->is_null( nAktPageNum ) ); + const PptSlidePersistEntry& rE = (*pPageList)[ nAktPageNum ]; + nSlideFlags = rE.aSlideAtom.nFlags; + if ( ! ( nSlideFlags & 2 ) ) + ((SdrPowerPointImport*)this)->aPageColors = rE.aColorScheme; } if ( nSlideFlags & 2 ) // follow master colorscheme? { @@ -2509,14 +2508,14 @@ bool SdrPowerPointImport::GetColorFromPalette( sal_uInt16 nNum, Color& rColor ) { PptSlidePersistEntry* pMasterPersist = NULL; if ( eAktPageKind == PPT_MASTERPAGE ) - pMasterPersist = (*pPageList2)[ nAktPageNum ]; + pMasterPersist = &(*pPageList2)[ nAktPageNum ]; else { if ( HasMasterPage( nAktPageNum, eAktPageKind ) ) { sal_uInt16 nMasterNum = GetMasterPageIndex( nAktPageNum, eAktPageKind ); if ( nMasterNum < pPageList2->size() ) - pMasterPersist = (*pPageList2)[ nMasterNum ]; + pMasterPersist = &(*pPageList2)[ nMasterNum ]; } } if ( pMasterPersist ) @@ -2528,7 +2527,7 @@ bool SdrPowerPointImport::GetColorFromPalette( sal_uInt16 nNum, Color& rColor ) if ( nNextMaster == PPTSLIDEPERSIST_ENTRY_NOTFOUND ) break; else - pMasterPersist = (*pPageList2)[ nNextMaster ]; + pMasterPersist = &(*pPageList2)[ nNextMaster ]; } } if ( pMasterPersist ) @@ -2560,8 +2559,9 @@ bool SdrPowerPointImport::SeekToShape( SvStream& rSt, void* pClientData, sal_uIn PptSlidePersistList* pPageList = GetPageList( PPT_MASTERPAGE ); if ( pPageList && ( nMasterNum < pPageList->size() ) ) { - PptSlidePersistEntry* pPersist = (*pPageList)[ nMasterNum ]; // get the masterpage's persistentry - if ( pPersist && pPersist->pPresentationObjects ) + assert( !pPageList->is_null( nMasterNum ) ); + const PptSlidePersistEntry& rPersist = (*pPageList)[ nMasterNum ]; // get the masterpage's persistentry + if ( rPersist.pPresentationObjects ) { sal_uInt32 nCurrent(0L); DffRecordList* pCList = maShapeRecords.pCList; // we got a backup of the current position @@ -2577,16 +2577,16 @@ bool SdrPowerPointImport::SeekToShape( SvStream& rSt, void* pClientData, sal_uIn switch ( aTextObj.GetInstance() ) { case TSS_TYPE_TITLE : - nShapePos = pPersist->pPresentationObjects[ TSS_TYPE_PAGETITLE ]; + nShapePos = rPersist.pPresentationObjects[ TSS_TYPE_PAGETITLE ]; break; case TSS_TYPE_PAGETITLE : - nShapePos = pPersist->pPresentationObjects[ TSS_TYPE_PAGETITLE ]; + nShapePos = rPersist.pPresentationObjects[ TSS_TYPE_PAGETITLE ]; break; case TSS_TYPE_SUBTITLE : case TSS_TYPE_HALFBODY : case TSS_TYPE_QUARTERBODY : case TSS_TYPE_BODY : - nShapePos = pPersist->pPresentationObjects[ TSS_TYPE_BODY ]; + nShapePos = rPersist.pPresentationObjects[ TSS_TYPE_BODY ]; break; } if ( nShapePos ) @@ -2694,7 +2694,7 @@ void SdrPowerPointImport::ImportPage( SdrPage* pRet, const PptSlidePersistEntry* PptSlidePersistList* pList = GetPageList( eAktPageKind ); if ( ( !pList ) || ( pList->size() <= nAktPageNum ) ) return; - PptSlidePersistEntry& rSlidePersist = *(*pList)[ nAktPageNum ]; + PptSlidePersistEntry& rSlidePersist = (*pList)[ nAktPageNum ]; if ( rSlidePersist.bStarDrawFiller ) return; @@ -2753,21 +2753,21 @@ void SdrPowerPointImport::ImportPage( SdrPage* pRet, const PptSlidePersistEntry* { sal_uInt16 nMasterNum = GetMasterPageIndex( nAktPageNum, eAktPageKind ); PptSlidePersistList* pPageList = GetPageList( PPT_MASTERPAGE ); - PptSlidePersistEntry* pE = (*pPageList)[ nMasterNum ]; - while( ( pE->aSlideAtom.nFlags & 4 ) && pE->aSlideAtom.nMasterId ) + PptSlidePersistEntry& rE = (*pPageList)[ nMasterNum ]; + while( ( rE.aSlideAtom.nFlags & 4 ) && rE.aSlideAtom.nMasterId ) { - sal_uInt16 nNextMaster = pMasterPages->FindPage( pE->aSlideAtom.nMasterId ); + sal_uInt16 nNextMaster = pMasterPages->FindPage( rE.aSlideAtom.nMasterId ); if ( nNextMaster == PPTSLIDEPERSIST_ENTRY_NOTFOUND ) break; else - pE = (*pPageList)[ nNextMaster ]; + rE = (*pPageList)[ nNextMaster ]; } - if ( pE->nBackgroundOffset ) + if ( rE.nBackgroundOffset ) { // do not follow master colorscheme? bool bTemporary = ( rSlidePersist.aSlideAtom.nFlags & 2 ) != 0; sal_uInt32 nPos = rStCtrl.Tell(); - rStCtrl.Seek( pE->nBackgroundOffset ); + rStCtrl.Seek( rE.nBackgroundOffset ); rSlidePersist.pBObj = ImportObj( rStCtrl, (void*)&aProcessData, aPageSize, aPageSize ); rSlidePersist.bBObjIsTemporary = bTemporary; rStCtrl.Seek( nPos ); @@ -2870,9 +2870,8 @@ const PptSlideLayoutAtom* SdrPowerPointImport::GetSlideLayoutAtom() const PptSlidePersistList* pPageList = GetPageList( eAktPageKind ); if ( pPageList && nAktPageNum < pPageList->size() ) { - PptSlidePersistEntry* pE = (*pPageList)[ nAktPageNum ]; - if ( pE ) - return &pE->aSlideAtom.aLayout; + assert( !pPageList->is_null( nAktPageNum ) ); + return &(*pPageList)[ nAktPageNum ].aSlideAtom.aLayout; } return NULL; } @@ -2889,7 +2888,7 @@ sal_uInt32 SdrPowerPointImport::GetMasterPageId( sal_uInt16 nPageNum, PptPageKin { PptSlidePersistList* pPageList = GetPageList( ePageKind ); if ( pPageList && nPageNum < pPageList->size() ) - return (*pPageList)[ nPageNum ]->aSlideAtom.nMasterId; + return (*pPageList)[ nPageNum ].aSlideAtom.nMasterId; return 0; } @@ -2897,7 +2896,7 @@ sal_uInt32 SdrPowerPointImport::GetNotesPageId( sal_uInt16 nPageNum ) const { PptSlidePersistList* pPageList=GetPageList( PPT_SLIDEPAGE ); if ( pPageList && nPageNum < pPageList->size() ) - return (*pPageList)[ nPageNum ]->aSlideAtom.nNotesId; + return (*pPageList)[ nPageNum ].aSlideAtom.nNotesId; return 0; } @@ -6439,7 +6438,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport PptSlidePersistList* pPageList = rSdrPowerPointImport.GetPageList( rSdrPowerPointImport.eAktPageKind ); PptSlidePersistEntry* pE = NULL; if ( pPageList && ( rSdrPowerPointImport.nAktPageNum < pPageList->size() ) ) - pE = (*pPageList)[ rSdrPowerPointImport.nAktPageNum ]; + pE = &(*pPageList)[ rSdrPowerPointImport.nAktPageNum ]; if ( (!pE) || (!pE->nSlidePersistStartOffset) || ( pE->aPersistAtom.nSlideId != nSlideId ) ) bStatus = false; else diff --git a/include/filter/msfilter/svdfppt.hxx b/include/filter/msfilter/svdfppt.hxx index 594cb54391e0..9fed6d0a0876 100644 --- a/include/filter/msfilter/svdfppt.hxx +++ b/include/filter/msfilter/svdfppt.hxx @@ -346,21 +346,26 @@ public: sal_uInt32 GetSlideId() const { return aPersistAtom.nSlideId; } }; -class _PptSlidePersistList : public std::vector<PptSlidePersistEntry*> +#define PPTSLIDEPERSIST_ENTRY_NOTFOUND 0xFFFF + +class MSFILTER_DLLPUBLIC PptSlidePersistList { +private: + boost::ptr_vector<PptSlidePersistEntry> mvEntries; + public: - ~_PptSlidePersistList() + size_t size() const { return mvEntries.size(); } + bool is_null( size_t nIdx ) const { return mvEntries.is_null( nIdx ); } + const PptSlidePersistEntry& operator[]( size_t nIdx ) const { return mvEntries[ nIdx ]; } + PptSlidePersistEntry& operator[]( size_t nIdx ) { return mvEntries[ nIdx ]; } + boost::ptr_vector<PptSlidePersistEntry>::iterator begin() { return mvEntries.begin(); } + void insert( boost::ptr_vector<PptSlidePersistEntry>::iterator it, + PptSlidePersistEntry* pEntry ) { - for( const_iterator it = begin(); it != end(); ++it ) - delete *it; + mvEntries.insert(it, pEntry); } -}; + void push_back( PptSlidePersistEntry* pEntry ) { mvEntries.push_back(pEntry); } -#define PPTSLIDEPERSIST_ENTRY_NOTFOUND 0xFFFF - -class MSFILTER_DLLPUBLIC PptSlidePersistList: public _PptSlidePersistList -{ -public: sal_uInt16 FindPage( sal_uInt32 nId ) const; }; diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx index fde8729229d7..d9cd48de3cad 100644 --- a/sd/source/filter/ppt/pptin.cxx +++ b/sd/source/filter/ppt/pptin.cxx @@ -90,6 +90,7 @@ #include <comphelper/string.hxx> #include <oox/ole/olehelper.hxx> +#include <cassert> #include <boost/make_shared.hpp> using namespace ::com::sun::star; @@ -551,11 +552,11 @@ bool ImplSdPPTImport::Import() SdPage* pPage = (SdPage*)MakeBlancPage( true ); if ( pPage ) { - bool bNotesMaster = (*GetPageList( eAktPageKind ) )[ nAktPageNum ]->bNotesMaster; - bool bStarDrawFiller = (*GetPageList( eAktPageKind ) )[ nAktPageNum ]->bStarDrawFiller; + bool bNotesMaster = (*GetPageList( eAktPageKind ) )[ nAktPageNum ].bNotesMaster; + bool bStarDrawFiller = (*GetPageList( eAktPageKind ) )[ nAktPageNum ].bStarDrawFiller; PageKind ePgKind = ( bNotesMaster ) ? PK_NOTES : PK_STANDARD; - bool bHandout = (*GetPageList( eAktPageKind ) )[ nAktPageNum ]->bHandoutMaster; + bool bHandout = (*GetPageList( eAktPageKind ) )[ nAktPageNum ].bHandoutMaster; if ( bHandout ) ePgKind = PK_HANDOUT; @@ -704,7 +705,7 @@ bool ImplSdPPTImport::Import() // importing master page objects PptSlidePersistList* pList = GetPageList( eAktPageKind ); PptSlidePersistEntry* pPersist = ( pList && ( nAktPageNum < pList->size() ) ) - ? (*pList)[ nAktPageNum ] : NULL; + ? &(*pList)[ nAktPageNum ] : NULL; if ( pPersist ) { if ( pPersist->bStarDrawFiller && pPersist->bNotesMaster && ( nAktPageNum > 2 ) && ( ( nAktPageNum & 1 ) == 0 ) ) @@ -728,14 +729,14 @@ bool ImplSdPPTImport::Import() if ( nNextMaster == PPTSLIDEPERSIST_ENTRY_NOTFOUND ) break; else - pE = (*pList)[ nNextMaster ]; + pE = &(*pList)[ nNextMaster ]; } SdrObject* pObj = ImportPageBackgroundObject( *pMPage, pE->nBackgroundOffset, true ); // import background if ( pObj ) pMPage->NbcInsertObject( pObj ); bool bNewAnimationsUsed = false; - ProcessData aProcessData( *(*pList)[ nAktPageNum ], (SdPage*)pMPage ); + ProcessData aProcessData( (*pList)[ nAktPageNum ], (SdPage*)pMPage ); sal_uInt32 nFPosMerk = rStCtrl.Tell(); DffRecordHeader aPageHd; if ( SeekToAktPage( &aPageHd ) ) @@ -882,7 +883,7 @@ bool ImplSdPPTImport::Import() pPage->TRG_SetMasterPage(*pSdrModel->GetMasterPage(nMasterNum)); PptSlidePersistList* pPageList = GetPageList( PPT_MASTERPAGE ); if ( pPageList && nMasterNum < pPageList->size() ) - pMasterPersist = (*pPageList)[ nMasterNum ]; + pMasterPersist = &(*pPageList)[ nMasterNum ]; pPage->SetLayoutName(((SdPage&)pPage->TRG_GetMasterPage()).GetLayoutName()); } pPage->SetPageKind( PK_STANDARD ); @@ -961,7 +962,7 @@ bool ImplSdPPTImport::Import() pNotesPage->TRG_SetMasterPage(*pSdrModel->GetMasterPage(nNotesMasterNum)); PptSlidePersistList* pPageList = GetPageList( PPT_MASTERPAGE ); if ( pPageList && nNotesMasterNum < pPageList->size() ) - pMasterPersist2 = (*pPageList)[ nNotesMasterNum ]; + pMasterPersist2 = &(*pPageList)[ nNotesMasterNum ]; pNotesPage->SetLayoutName( ((SdPage&)pNotesPage->TRG_GetMasterPage()).GetLayoutName() ); } pNotesPage->SetPageKind( PK_NOTES ); @@ -1371,7 +1372,7 @@ void ImplSdPPTImport::SetHeaderFooterPageSettings( SdPage* pPage, const PptSlide PptSlidePersistList* pList = GetPageList( eAktPageKind ); if ( ( !pList ) || ( pList->size() <= nAktPageNum ) ) return; - PptSlidePersistEntry& rSlidePersist = *(*pList)[ nAktPageNum ]; + PptSlidePersistEntry& rSlidePersist = (*pList)[ nAktPageNum ]; HeaderFooterEntry* pHFE = rSlidePersist.pHeaderFooterEntry; if ( pHFE ) { @@ -1465,7 +1466,7 @@ void ImplSdPPTImport::ImportPageEffect( SdPage* pPage, const bool bNewAnimations { PptSlidePersistList* pPersistList = GetPageList( eAktPageKind ); PptSlidePersistEntry* pActualSlidePersist = ( pPersistList && ( nAktPageNum < pPersistList->size() ) ) - ? (*pPersistList)[ nAktPageNum ] : NULL; + ? &(*pPersistList)[ nAktPageNum ] : NULL; if ( pActualSlidePersist && ( eAktPageKind == PPT_SLIDEPAGE ) ) { @@ -1772,17 +1773,15 @@ void ImplSdPPTImport::ImportPageEffect( SdPage* pPage, const bool bNewAnimations PptSlidePersistList* pPageList = GetPageList( PPT_MASTERPAGE ); if ( pPageList && ( nMasterNum < pPageList->size() ) ) { - PptSlidePersistEntry* pE = (*pPageList)[ nMasterNum ]; - if ( pE ) - { - sal_uInt32 nOfs = pE->aPersistAtom.nReserved; + assert( !pPageList->is_null( nMasterNum ) ); + const PptSlidePersistEntry& rE = (*pPageList)[ nMasterNum ]; + sal_uInt32 nOfs = rE.aPersistAtom.nReserved; if ( nOfs ) { rStCtrl.Seek( nOfs ); nPageRecEnd = nOfs + 16; continue; } - } } } |