summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-09-11 10:04:45 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-09-11 12:38:54 +0200
commitb7756fdde63b1eef85ef13772fc3578e345d34dc (patch)
treedfaa234b4011079e1550f2944b1a0b113206904f
parentf10ec80efd4d3437dae40748189e2ca942dc5754 (diff)
crashtesting: failed on export of tdf118002-1.potx to pptx
because the bg isn't set a master isn't exported, so the endelement XML_sldMasterIdLst isn't exported and the document is broken so don't exit early if the propertyset isn't found and always call ImplWriteSlideMaster Modify the ppt variant PPTWriter::ImplWriteSlideMaster to do nothing on an empty propertyset allowing PowerPointExport:ImplWriteSlideMaster to output its XML_sldMasterIdLst on the last master Change-Id: I512ee10b3b3c80b6566827d708b737c6c502c3b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102451 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--sd/source/filter/eppt/eppt.cxx2
-rw-r--r--sd/source/filter/eppt/pptx-epptbase.cxx6
2 files changed, 4 insertions, 4 deletions
diff --git a/sd/source/filter/eppt/eppt.cxx b/sd/source/filter/eppt/eppt.cxx
index 26f0dae9f234..5c1f9da7d7af 100644
--- a/sd/source/filter/eppt/eppt.cxx
+++ b/sd/source/filter/eppt/eppt.cxx
@@ -361,6 +361,8 @@ void PPTWriter::ImplWriteSlide( sal_uInt32 nPageNum, sal_uInt32 nMasterNum, sal_
void PPTWriter::ImplWriteSlideMaster( sal_uInt32 nPageNum, Reference< XPropertySet > const & aXBackgroundPropSet )
{
+ if (!aXBackgroundPropSet)
+ return;
mpPptEscherEx->PtReplaceOrInsert( EPP_Persist_MainMaster | nPageNum, mpStrm->Tell() );
mpPptEscherEx->OpenContainer( EPP_MainMaster );
mpPptEscherEx->AddAtom( 24, EPP_SlideAtom, 2 );
diff --git a/sd/source/filter/eppt/pptx-epptbase.cxx b/sd/source/filter/eppt/pptx-epptbase.cxx
index 0f9975e7ce67..38015a654e09 100644
--- a/sd/source/filter/eppt/pptx-epptbase.cxx
+++ b/sd/source/filter/eppt/pptx-epptbase.cxx
@@ -388,11 +388,9 @@ bool PPTWriterBase::CreateSlideMaster( sal_uInt32 nPageNum )
return false;
SetCurrentStyleSheet( nPageNum );
- if ( !ImplGetPropertyValue( mXPagePropSet, "Background" ) ) // load background shape
- return false;
css::uno::Reference< css::beans::XPropertySet > aXBackgroundPropSet;
- if ( !( mAny >>= aXBackgroundPropSet ) )
- return false;
+ if (ImplGetPropertyValue(mXPagePropSet, "Background")) // load background shape
+ mAny >>= aXBackgroundPropSet;
ImplWriteSlideMaster( nPageNum, aXBackgroundPropSet );