[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - sd/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Tue Sep 15 07:57:40 UTC 2020


 sd/source/filter/eppt/eppt.cxx           |    2 ++
 sd/source/filter/eppt/pptx-epptbase.cxx  |    6 ++----
 sd/source/filter/eppt/pptx-epptooxml.cxx |    3 ++-
 3 files changed, 6 insertions(+), 5 deletions(-)

New commits:
commit 80497a3f2b41c99fcd0b6987d1bfb213ea86fdb2
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri Sep 11 10:04:45 2020 +0100
Commit:     Miklos Vajna <vmiklos at collabora.com>
CommitDate: Tue Sep 15 09:57:05 2020 +0200

    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 at redhat.com>
    (cherry picked from commit b7756fdde63b1eef85ef13772fc3578e345d34dc)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102422
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>

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 552816e83a14..b5ce6b24958d 100644
--- a/sd/source/filter/eppt/pptx-epptbase.cxx
+++ b/sd/source/filter/eppt/pptx-epptbase.cxx
@@ -387,11 +387,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 );
 
diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx
index d2fca1e919c7..a8af03e34ecb 100644
--- a/sd/source/filter/eppt/pptx-epptooxml.cxx
+++ b/sd/source/filter/eppt/pptx-epptooxml.cxx
@@ -1272,7 +1272,8 @@ void PowerPointExport::ImplWriteSlideMaster(sal_uInt32 nPageNum, Reference< XPro
 
     pFS->startElementNS(XML_p, XML_cSld);
 
-    ImplWriteBackground(pFS, aXBackgroundPropSet);
+    if (aXBackgroundPropSet)
+        ImplWriteBackground(pFS, aXBackgroundPropSet);
     WriteShapeTree(pFS, MASTER, true);
 
     pFS->endElementNS(XML_p, XML_cSld);


More information about the Libreoffice-commits mailing list