Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
c249f93d
Kaydet (Commit)
c249f93d
authored
Agu 27, 2015
tarafından
Caolán McNamara
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
extend seek, loop ending tests to ppt specific code
Change-Id: Id4419b6b902b742117e248870b6a663c9c58955f
üst
496ee4fc
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
38 deletions
+43
-38
svdfppt.cxx
filter/source/msfilter/svdfppt.cxx
+21
-24
dffpropset.hxx
include/filter/msfilter/dffpropset.hxx
+1
-0
hang-3.ppt
sd/qa/unit/data/ppt/pass/hang-3.ppt
+0
-0
pptin.cxx
sd/source/filter/ppt/pptin.cxx
+21
-14
No files found.
filter/source/msfilter/svdfppt.cxx
Dosyayı görüntüle @
c249f93d
...
@@ -708,19 +708,16 @@ void SdrEscherImport::RecolorGraphic( SvStream& rSt, sal_uInt32 nRecLen, Graphic
...
@@ -708,19 +708,16 @@ void SdrEscherImport::RecolorGraphic( SvStream& rSt, sal_uInt32 nRecLen, Graphic
}
}
}
}
namespace
sal_uLong
DffPropSet
::
SanitizeEndPos
(
SvStream
&
rIn
,
sal_uLong
nEndRecPos
)
{
{
sal_uLong
SanitizeEndPos
(
SvStream
&
rIn
,
sal_uLong
nEndRecPos
)
auto
nStreamLen
=
rIn
.
Tell
()
+
rIn
.
remainingSize
();
if
(
nEndRecPos
>
nStreamLen
)
{
{
auto
nStreamLen
=
rIn
.
Tell
()
+
rIn
.
remainingSize
();
SAL_WARN
(
"filter.ms"
,
"Parsing error: "
<<
nStreamLen
<<
if
(
nEndRecPos
>
nStreamLen
)
" max end pos, but "
<<
nEndRecPos
<<
" claimed, truncating"
);
{
nEndRecPos
=
nStreamLen
;
SAL_WARN
(
"filter.ms"
,
"Parsing error: "
<<
nStreamLen
<<
" max end pos, but "
<<
nEndRecPos
<<
" claimed, truncating"
);
nEndRecPos
=
nStreamLen
;
}
return
nEndRecPos
;
}
}
return
nEndRecPos
;
}
}
/* ProcessObject is called from ImplSdPPTImport::ProcessObj to handle all application specific things,
/* ProcessObject is called from ImplSdPPTImport::ProcessObj to handle all application specific things,
...
@@ -2662,7 +2659,7 @@ void ImportComment10( SvxMSDffManager& rMan, SvStream& rStCtrl, SdrPage* pPage,
...
@@ -2662,7 +2659,7 @@ void ImportComment10( SvxMSDffManager& rMan, SvStream& rStCtrl, SdrPage* pPage,
sal_Int32
nPosY
=
0
;
sal_Int32
nPosY
=
0
;
auto
nEndRecPos
=
SanitizeEndPos
(
rStCtrl
,
rComment10Hd
.
GetRecEndFilePos
());
auto
nEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rStCtrl
,
rComment10Hd
.
GetRecEndFilePos
());
while
(
(
rStCtrl
.
GetError
()
==
0
)
&&
(
rStCtrl
.
Tell
()
<
nEndRecPos
)
)
while
(
(
rStCtrl
.
GetError
()
==
0
)
&&
(
rStCtrl
.
Tell
()
<
nEndRecPos
)
)
{
{
DffRecordHeader
aCommentHd
;
DffRecordHeader
aCommentHd
;
...
@@ -3185,7 +3182,7 @@ PPTExtParaProv::PPTExtParaProv( SdrPowerPointImport& rMan, SvStream& rSt, const
...
@@ -3185,7 +3182,7 @@ PPTExtParaProv::PPTExtParaProv( SdrPowerPointImport& rMan, SvStream& rSt, const
pListHd
->
SeekToContent
(
rSt
);
pListHd
->
SeekToContent
(
rSt
);
if
(
pListHd
&&
SdrPowerPointImport
::
SeekToContentOfProgTag
(
9
,
rSt
,
*
pListHd
,
aContentDataHd
)
)
if
(
pListHd
&&
SdrPowerPointImport
::
SeekToContentOfProgTag
(
9
,
rSt
,
*
pListHd
,
aContentDataHd
)
)
{
{
auto
nEndRecPos
=
SanitizeEndPos
(
rSt
,
aContentDataHd
.
GetRecEndFilePos
());
auto
nEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rSt
,
aContentDataHd
.
GetRecEndFilePos
());
while
(
(
rSt
.
GetError
()
==
0
)
&&
(
rSt
.
Tell
()
<
nEndRecPos
)
)
while
(
(
rSt
.
GetError
()
==
0
)
&&
(
rSt
.
Tell
()
<
nEndRecPos
)
)
{
{
ReadDffRecordHeader
(
rSt
,
aHd
);
ReadDffRecordHeader
(
rSt
,
aHd
);
...
@@ -3193,7 +3190,7 @@ PPTExtParaProv::PPTExtParaProv( SdrPowerPointImport& rMan, SvStream& rSt, const
...
@@ -3193,7 +3190,7 @@ PPTExtParaProv::PPTExtParaProv( SdrPowerPointImport& rMan, SvStream& rSt, const
{
{
case
PPT_PST_ExtendedBuGraContainer
:
case
PPT_PST_ExtendedBuGraContainer
:
{
{
auto
nHdEndRecPos
=
SanitizeEndPos
(
rSt
,
aHd
.
GetRecEndFilePos
());
auto
nHdEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rSt
,
aHd
.
GetRecEndFilePos
());
while
(
(
rSt
.
GetError
()
==
0
)
&&
(
rSt
.
Tell
()
<
nHdEndRecPos
)
)
while
(
(
rSt
.
GetError
()
==
0
)
&&
(
rSt
.
Tell
()
<
nHdEndRecPos
)
)
{
{
sal_uInt16
nType
;
sal_uInt16
nType
;
...
@@ -3265,7 +3262,7 @@ PPTExtParaProv::PPTExtParaProv( SdrPowerPointImport& rMan, SvStream& rSt, const
...
@@ -3265,7 +3262,7 @@ PPTExtParaProv::PPTExtParaProv( SdrPowerPointImport& rMan, SvStream& rSt, const
if
(
pHd
&&
SdrPowerPointImport
::
SeekToContentOfProgTag
(
9
,
rSt
,
*
pHd
,
aContentDataHd
)
)
if
(
pHd
&&
SdrPowerPointImport
::
SeekToContentOfProgTag
(
9
,
rSt
,
*
pHd
,
aContentDataHd
)
)
{
// get the extended paragraph styles on mainmaster ( graphical bullets, num ruling ... )
{
// get the extended paragraph styles on mainmaster ( graphical bullets, num ruling ... )
auto
nEndRecPos
=
SanitizeEndPos
(
rSt
,
aContentDataHd
.
GetRecEndFilePos
());
auto
nEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rSt
,
aContentDataHd
.
GetRecEndFilePos
());
while
(
(
rSt
.
GetError
()
==
0
)
&&
(
rSt
.
Tell
()
<
nEndRecPos
)
)
while
(
(
rSt
.
GetError
()
==
0
)
&&
(
rSt
.
Tell
()
<
nEndRecPos
)
)
{
{
ReadDffRecordHeader
(
rSt
,
aHd
);
ReadDffRecordHeader
(
rSt
,
aHd
);
...
@@ -3279,7 +3276,7 @@ PPTExtParaProv::PPTExtParaProv( SdrPowerPointImport& rMan, SvStream& rSt, const
...
@@ -3279,7 +3276,7 @@ PPTExtParaProv::PPTExtParaProv( SdrPowerPointImport& rMan, SvStream& rSt, const
rSt
.
ReadUInt16
(
nDepth
);
rSt
.
ReadUInt16
(
nDepth
);
if
(
i
<=
5
)
if
(
i
<=
5
)
{
{
auto
nHdEndRecPos
=
SanitizeEndPos
(
rSt
,
aHd
.
GetRecEndFilePos
());
auto
nHdEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rSt
,
aHd
.
GetRecEndFilePos
());
while
(
(
rSt
.
GetError
()
==
0
)
&&
(
rSt
.
Tell
()
<
nHdEndRecPos
)
&&
(
i
<
nDepth
)
)
while
(
(
rSt
.
GetError
()
==
0
)
&&
(
rSt
.
Tell
()
<
nHdEndRecPos
)
&&
(
i
<
nDepth
)
)
{
{
bStyles
=
true
;
bStyles
=
true
;
...
@@ -4041,7 +4038,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
...
@@ -4041,7 +4038,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
{
{
pEnvHeader
->
SeekToContent
(
rIn
);
pEnvHeader
->
SeekToContent
(
rIn
);
DffRecordHeader
aTxMasterStyleHd
;
DffRecordHeader
aTxMasterStyleHd
;
auto
nEndRecPos
=
SanitizeEndPos
(
rIn
,
pEnvHeader
->
GetRecEndFilePos
());
auto
nEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rIn
,
pEnvHeader
->
GetRecEndFilePos
());
while
(
rIn
.
Tell
()
<
nEndRecPos
)
while
(
rIn
.
Tell
()
<
nEndRecPos
)
{
{
ReadDffRecordHeader
(
rIn
,
aTxMasterStyleHd
);
ReadDffRecordHeader
(
rIn
,
aTxMasterStyleHd
);
...
@@ -4053,7 +4050,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
...
@@ -4053,7 +4050,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
sal_uInt16
nLev
=
0
;
sal_uInt16
nLev
=
0
;
bool
bFirst
=
true
;
bool
bFirst
=
true
;
bFoundTxMasterStyleAtom04
=
true
;
bFoundTxMasterStyleAtom04
=
true
;
auto
nTxEndRecPos
=
SanitizeEndPos
(
rIn
,
aTxMasterStyleHd
.
GetRecEndFilePos
());
auto
nTxEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rIn
,
aTxMasterStyleHd
.
GetRecEndFilePos
());
while
(
rIn
.
GetError
()
==
0
&&
rIn
.
Tell
()
<
nTxEndRecPos
&&
nLev
<
nLevelAnz
&&
nLev
<
nMaxPPTLevels
)
while
(
rIn
.
GetError
()
==
0
&&
rIn
.
Tell
()
<
nTxEndRecPos
&&
nLev
<
nLevelAnz
&&
nLev
<
nMaxPPTLevels
)
{
{
if
(
nLev
)
if
(
nLev
)
...
@@ -4092,7 +4089,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
...
@@ -4092,7 +4089,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
rSlideHd
.
SeekToContent
(
rIn
);
rSlideHd
.
SeekToContent
(
rIn
);
DffRecordHeader
aTxMasterStyleHd
;
DffRecordHeader
aTxMasterStyleHd
;
auto
nEndRecPos
=
SanitizeEndPos
(
rIn
,
rSlideHd
.
GetRecEndFilePos
());
auto
nEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rIn
,
rSlideHd
.
GetRecEndFilePos
());
while
(
rIn
.
Tell
()
<
nEndRecPos
)
while
(
rIn
.
Tell
()
<
nEndRecPos
)
{
{
ReadDffRecordHeader
(
rIn
,
aTxMasterStyleHd
);
ReadDffRecordHeader
(
rIn
,
aTxMasterStyleHd
);
...
@@ -4151,7 +4148,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
...
@@ -4151,7 +4148,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
sal_uInt16
nLev
=
0
;
sal_uInt16
nLev
=
0
;
bool
bFirst
=
true
;
bool
bFirst
=
true
;
auto
nTxEndRecPos
=
SanitizeEndPos
(
rIn
,
aTxMasterStyleHd
.
GetRecEndFilePos
());
auto
nTxEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rIn
,
aTxMasterStyleHd
.
GetRecEndFilePos
());
while
(
rIn
.
GetError
()
==
0
&&
rIn
.
Tell
()
<
nTxEndRecPos
&&
nLev
<
nLevelAnz
)
while
(
rIn
.
GetError
()
==
0
&&
rIn
.
Tell
()
<
nTxEndRecPos
&&
nLev
<
nLevelAnz
)
{
{
if
(
nLev
&&
(
nInstance
<
5
)
)
if
(
nLev
&&
(
nInstance
<
5
)
)
...
@@ -4231,7 +4228,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
...
@@ -4231,7 +4228,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
{
{
pEnvHeader2
->
SeekToContent
(
rIn
);
pEnvHeader2
->
SeekToContent
(
rIn
);
DffRecordHeader
aTxMasterStyleHd2
;
DffRecordHeader
aTxMasterStyleHd2
;
auto
nEnvEndRecPos
=
SanitizeEndPos
(
rIn
,
pEnvHeader2
->
GetRecEndFilePos
());
auto
nEnvEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rIn
,
pEnvHeader2
->
GetRecEndFilePos
());
while
(
rIn
.
Tell
()
<
nEnvEndRecPos
)
while
(
rIn
.
Tell
()
<
nEnvEndRecPos
)
{
{
ReadDffRecordHeader
(
rIn
,
aTxMasterStyleHd2
);
ReadDffRecordHeader
(
rIn
,
aTxMasterStyleHd2
);
...
@@ -4242,7 +4239,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
...
@@ -4242,7 +4239,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
sal_uInt16
nLev
=
0
;
sal_uInt16
nLev
=
0
;
bool
bFirst
=
true
;
bool
bFirst
=
true
;
auto
nTxEndRecPos
=
SanitizeEndPos
(
rIn
,
aTxMasterStyleHd2
.
GetRecEndFilePos
());
auto
nTxEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rIn
,
aTxMasterStyleHd2
.
GetRecEndFilePos
());
while
(
rIn
.
GetError
()
==
0
&&
rIn
.
Tell
()
<
nTxEndRecPos
&&
nLev
<
nLevelAnz
)
while
(
rIn
.
GetError
()
==
0
&&
rIn
.
Tell
()
<
nTxEndRecPos
&&
nLev
<
nLevelAnz
)
{
{
if
(
nLev
)
if
(
nLev
)
...
@@ -4748,7 +4745,7 @@ bool PPTTextSpecInfoAtomInterpreter::Read( SvStream& rIn, const DffRecordHeader&
...
@@ -4748,7 +4745,7 @@ bool PPTTextSpecInfoAtomInterpreter::Read( SvStream& rIn, const DffRecordHeader&
sal_uInt32
nCharIdx
=
0
;
sal_uInt32
nCharIdx
=
0
;
rRecHd
.
SeekToContent
(
rIn
);
rRecHd
.
SeekToContent
(
rIn
);
auto
nEndRecPos
=
SanitizeEndPos
(
rIn
,
rRecHd
.
GetRecEndFilePos
());
auto
nEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rIn
,
rRecHd
.
GetRecEndFilePos
());
while
(
rIn
.
Tell
()
<
nEndRecPos
&&
rIn
.
good
())
while
(
rIn
.
Tell
()
<
nEndRecPos
&&
rIn
.
good
())
{
{
if
(
nRecordType
==
PPT_PST_TextSpecInfoAtom
)
if
(
nRecordType
==
PPT_PST_TextSpecInfoAtom
)
...
@@ -5096,7 +5093,7 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe
...
@@ -5096,7 +5093,7 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const DffRecordHeader& rTextHe
{
{
rIn
.
Seek
(
rExtParaHd
.
nFilePos
+
8
);
rIn
.
Seek
(
rExtParaHd
.
nFilePos
+
8
);
auto
nEndRecPos
=
SanitizeEndPos
(
rIn
,
rExtParaHd
.
GetRecEndFilePos
());
auto
nEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rIn
,
rExtParaHd
.
GetRecEndFilePos
());
while
(
(
rIn
.
GetError
()
==
0
)
&&
(
rIn
.
Tell
()
<
nEndRecPos
)
)
while
(
(
rIn
.
GetError
()
==
0
)
&&
(
rIn
.
Tell
()
<
nEndRecPos
)
)
{
{
aStyleTextProp9
.
resize
(
aStyleTextProp9
.
size
()
+
1
);
aStyleTextProp9
.
resize
(
aStyleTextProp9
.
size
()
+
1
);
...
@@ -6622,7 +6619,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport
...
@@ -6622,7 +6619,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport
// or ParaTabStops and append them on this textobj
// or ParaTabStops and append them on this textobj
rIn
.
Seek
(
nFilePos
);
rIn
.
Seek
(
nFilePos
);
::
std
::
vector
<
PPTFieldEntry
*
>
FieldList
;
::
std
::
vector
<
PPTFieldEntry
*
>
FieldList
;
auto
nEndRecPos
=
SanitizeEndPos
(
rIn
,
aClientTextBoxHd
.
GetRecEndFilePos
());
auto
nEndRecPos
=
DffPropSet
::
SanitizeEndPos
(
rIn
,
aClientTextBoxHd
.
GetRecEndFilePos
());
while
(
rIn
.
Tell
()
<
nEndRecPos
)
while
(
rIn
.
Tell
()
<
nEndRecPos
)
{
{
ReadDffRecordHeader
(
rIn
,
aTextHd
);
ReadDffRecordHeader
(
rIn
,
aTextHd
);
...
...
include/filter/msfilter/dffpropset.hxx
Dosyayı görüntüle @
c249f93d
...
@@ -60,6 +60,7 @@ class MSFILTER_DLLPUBLIC DffPropSet
...
@@ -60,6 +60,7 @@ class MSFILTER_DLLPUBLIC DffPropSet
OUString
GetPropertyString
(
sal_uInt32
nId
,
SvStream
&
rStrm
)
const
;
OUString
GetPropertyString
(
sal_uInt32
nId
,
SvStream
&
rStrm
)
const
;
bool
SeekToContent
(
sal_uInt32
nRecType
,
SvStream
&
rSt
)
const
;
bool
SeekToContent
(
sal_uInt32
nRecType
,
SvStream
&
rSt
)
const
;
void
InitializePropSet
(
sal_uInt16
nPropSetType
)
const
;
void
InitializePropSet
(
sal_uInt16
nPropSetType
)
const
;
static
sal_uLong
SanitizeEndPos
(
SvStream
&
rIn
,
sal_uLong
nEndRecPos
);
friend
SvStream
&
ReadDffPropSet
(
SvStream
&
rIn
,
DffPropSet
&
rPropSet
);
friend
SvStream
&
ReadDffPropSet
(
SvStream
&
rIn
,
DffPropSet
&
rPropSet
);
friend
SvStream
&
operator
|=
(
SvStream
&
rIn
,
DffPropSet
&
rPropSet
);
friend
SvStream
&
operator
|=
(
SvStream
&
rIn
,
DffPropSet
&
rPropSet
);
...
...
sd/qa/unit/data/ppt/pass/hang-3.ppt
0 → 100644
Dosyayı görüntüle @
c249f93d
File added
sd/source/filter/ppt/pptin.cxx
Dosyayı görüntüle @
c249f93d
...
@@ -749,7 +749,8 @@ bool ImplSdPPTImport::Import()
...
@@ -749,7 +749,8 @@ bool ImplSdPPTImport::Import()
DffRecordHeader
aPageHd
;
DffRecordHeader
aPageHd
;
if
(
SeekToAktPage
(
&
aPageHd
)
)
if
(
SeekToAktPage
(
&
aPageHd
)
)
{
{
while
(
(
rStCtrl
.
GetError
()
==
0
)
&&
(
rStCtrl
.
Tell
()
<
aPageHd
.
GetRecEndFilePos
()
)
)
auto
nEndRecPos
=
SanitizeEndPos
(
rStCtrl
,
aPageHd
.
GetRecEndFilePos
());
while
(
(
rStCtrl
.
GetError
()
==
0
)
&&
(
rStCtrl
.
Tell
()
<
nEndRecPos
)
)
{
{
DffRecordHeader
aHd
;
DffRecordHeader
aHd
;
ReadDffRecordHeader
(
rStCtrl
,
aHd
);
ReadDffRecordHeader
(
rStCtrl
,
aHd
);
...
@@ -770,7 +771,8 @@ bool ImplSdPPTImport::Import()
...
@@ -770,7 +771,8 @@ bool ImplSdPPTImport::Import()
if
(
SeekToRec
(
rStCtrl
,
DFF_msofbtSpgrContainer
,
nEscherF002End
,
&
aEscherObjListHd
)
)
if
(
SeekToRec
(
rStCtrl
,
DFF_msofbtSpgrContainer
,
nEscherF002End
,
&
aEscherObjListHd
)
)
{
{
sal_uInt32
nObjCount
=
0
;
sal_uInt32
nObjCount
=
0
;
while
(
(
rStCtrl
.
GetError
()
==
0
)
&&
(
rStCtrl
.
Tell
()
<
aEscherObjListHd
.
GetRecEndFilePos
()
)
)
auto
nListEndRecPos
=
SanitizeEndPos
(
rStCtrl
,
aEscherObjListHd
.
GetRecEndFilePos
());
while
(
(
rStCtrl
.
GetError
()
==
0
)
&&
(
rStCtrl
.
Tell
()
<
nListEndRecPos
)
)
{
{
DffRecordHeader
aHd2
;
DffRecordHeader
aHd2
;
ReadDffRecordHeader
(
rStCtrl
,
aHd2
);
ReadDffRecordHeader
(
rStCtrl
,
aHd2
);
...
@@ -801,7 +803,8 @@ bool ImplSdPPTImport::Import()
...
@@ -801,7 +803,8 @@ bool ImplSdPPTImport::Import()
DffRecordHeader
aProgTagHd
;
DffRecordHeader
aProgTagHd
;
if
(
SeekToContentOfProgTag
(
10
,
rStCtrl
,
aPageHd
,
aProgTagHd
)
)
if
(
SeekToContentOfProgTag
(
10
,
rStCtrl
,
aPageHd
,
aProgTagHd
)
)
{
{
while
(
(
rStCtrl
.
GetError
()
==
0
)
&&
(
rStCtrl
.
Tell
()
<
aProgTagHd
.
GetRecEndFilePos
()
)
)
auto
nTagEndRecPos
=
SanitizeEndPos
(
rStCtrl
,
aProgTagHd
.
GetRecEndFilePos
());
while
(
(
rStCtrl
.
GetError
()
==
0
)
&&
(
rStCtrl
.
Tell
()
<
nTagEndRecPos
)
)
{
{
DffRecordHeader
aProgTagContentHd
;
DffRecordHeader
aProgTagContentHd
;
ReadDffRecordHeader
(
rStCtrl
,
aProgTagContentHd
);
ReadDffRecordHeader
(
rStCtrl
,
aProgTagContentHd
);
...
@@ -909,7 +912,8 @@ bool ImplSdPPTImport::Import()
...
@@ -909,7 +912,8 @@ bool ImplSdPPTImport::Import()
bool
bNewAnimationsUsed
=
false
;
bool
bNewAnimationsUsed
=
false
;
aPageHd
.
SeekToContent
(
rStCtrl
);
aPageHd
.
SeekToContent
(
rStCtrl
);
while
(
(
rStCtrl
.
GetError
()
==
0
)
&&
(
rStCtrl
.
Tell
()
<
aPageHd
.
GetRecEndFilePos
()
)
)
auto
nEndRecPos
=
SanitizeEndPos
(
rStCtrl
,
aPageHd
.
GetRecEndFilePos
());
while
(
(
rStCtrl
.
GetError
()
==
0
)
&&
(
rStCtrl
.
Tell
()
<
nEndRecPos
)
)
{
{
DffRecordHeader
aHd
;
DffRecordHeader
aHd
;
ReadDffRecordHeader
(
rStCtrl
,
aHd
);
ReadDffRecordHeader
(
rStCtrl
,
aHd
);
...
@@ -920,7 +924,8 @@ bool ImplSdPPTImport::Import()
...
@@ -920,7 +924,8 @@ bool ImplSdPPTImport::Import()
DffRecordHeader
aProgTagHd
;
DffRecordHeader
aProgTagHd
;
if
(
SeekToContentOfProgTag
(
10
,
rStCtrl
,
aPageHd
,
aProgTagHd
)
)
if
(
SeekToContentOfProgTag
(
10
,
rStCtrl
,
aPageHd
,
aProgTagHd
)
)
{
{
while
(
(
rStCtrl
.
GetError
()
==
0
)
&&
(
rStCtrl
.
Tell
()
<
aProgTagHd
.
GetRecEndFilePos
()
)
)
auto
nHdEndRecPos
=
SanitizeEndPos
(
rStCtrl
,
aProgTagHd
.
GetRecEndFilePos
());
while
(
(
rStCtrl
.
GetError
()
==
0
)
&&
(
rStCtrl
.
Tell
()
<
nHdEndRecPos
)
)
{
{
DffRecordHeader
aProgTagContentHd
;
DffRecordHeader
aProgTagContentHd
;
ReadDffRecordHeader
(
rStCtrl
,
aProgTagContentHd
);
ReadDffRecordHeader
(
rStCtrl
,
aProgTagContentHd
);
...
@@ -1494,7 +1499,7 @@ void ImplSdPPTImport::ImportPageEffect( SdPage* pPage, const bool bNewAnimations
...
@@ -1494,7 +1499,7 @@ void ImplSdPPTImport::ImportPageEffect( SdPage* pPage, const bool bNewAnimations
DffRecordHeader
aPageRecHd
;
DffRecordHeader
aPageRecHd
;
if
(
SeekToAktPage
(
&
aPageRecHd
)
)
if
(
SeekToAktPage
(
&
aPageRecHd
)
)
{
{
sal_uLong
nPageRecEnd
=
aPageRecHd
.
GetRecEndFilePos
(
);
sal_uLong
nPageRecEnd
=
SanitizeEndPos
(
rStCtrl
,
aPageRecHd
.
GetRecEndFilePos
()
);
bool
bTryTwice
=
(
eAktPageKind
==
PPT_SLIDEPAGE
);
bool
bTryTwice
=
(
eAktPageKind
==
PPT_SLIDEPAGE
);
bool
bSSSlideInfoAtom
=
false
;
bool
bSSSlideInfoAtom
=
false
;
...
@@ -1787,12 +1792,12 @@ void ImplSdPPTImport::ImportPageEffect( SdPage* pPage, const bool bNewAnimations
...
@@ -1787,12 +1792,12 @@ void ImplSdPPTImport::ImportPageEffect( SdPage* pPage, const bool bNewAnimations
assert
(
!
pPageList
->
is_null
(
nMasterNum
)
);
assert
(
!
pPageList
->
is_null
(
nMasterNum
)
);
const
PptSlidePersistEntry
&
rE
=
(
*
pPageList
)[
nMasterNum
];
const
PptSlidePersistEntry
&
rE
=
(
*
pPageList
)[
nMasterNum
];
sal_uInt32
nOfs
=
rE
.
aPersistAtom
.
nReserved
;
sal_uInt32
nOfs
=
rE
.
aPersistAtom
.
nReserved
;
if
(
nOfs
)
if
(
nOfs
)
{
{
rStCtrl
.
Seek
(
nOfs
);
rStCtrl
.
Seek
(
nOfs
);
nPageRecEnd
=
nOfs
+
16
;
nPageRecEnd
=
nOfs
+
16
;
continue
;
continue
;
}
}
}
}
}
}
...
@@ -1951,7 +1956,8 @@ OUString ImplSdPPTImport::ReadMedia( sal_uInt32 nMediaRef ) const
...
@@ -1951,7 +1956,8 @@ OUString ImplSdPPTImport::ReadMedia( sal_uInt32 nMediaRef ) const
if
(
pHd
)
if
(
pHd
)
{
{
pHd
->
SeekToContent
(
rStCtrl
);
pHd
->
SeekToContent
(
rStCtrl
);
while
(
(
rStCtrl
.
Tell
()
<
pHd
->
GetRecEndFilePos
()
)
&&
aRetVal
.
isEmpty
()
)
auto
nEndRecPos
=
SanitizeEndPos
(
rStCtrl
,
pHd
->
GetRecEndFilePos
());
while
(
(
rStCtrl
.
Tell
()
<
nEndRecPos
)
&&
aRetVal
.
isEmpty
()
)
{
{
DffRecordHeader
aHdMovie
;
DffRecordHeader
aHdMovie
;
ReadDffRecordHeader
(
rStCtrl
,
aHdMovie
);
ReadDffRecordHeader
(
rStCtrl
,
aHdMovie
);
...
@@ -1971,7 +1977,8 @@ OUString ImplSdPPTImport::ReadMedia( sal_uInt32 nMediaRef ) const
...
@@ -1971,7 +1977,8 @@ OUString ImplSdPPTImport::ReadMedia( sal_uInt32 nMediaRef ) const
if
(
nRef
==
nMediaRef
)
if
(
nRef
==
nMediaRef
)
{
{
aExVideoHd
.
SeekToContent
(
rStCtrl
);
aExVideoHd
.
SeekToContent
(
rStCtrl
);
while
(
rStCtrl
.
Tell
()
<
aExVideoHd
.
GetRecEndFilePos
()
)
auto
nHdEndRecPos
=
SanitizeEndPos
(
rStCtrl
,
aExVideoHd
.
GetRecEndFilePos
());
while
(
rStCtrl
.
Tell
()
<
nHdEndRecPos
)
{
{
DffRecordHeader
aHd
;
DffRecordHeader
aHd
;
ReadDffRecordHeader
(
rStCtrl
,
aHd
);
ReadDffRecordHeader
(
rStCtrl
,
aHd
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment