[Libreoffice-commits] core.git: sw/qa writerfilter/source

Justin Luth (via logerrit) logerrit at kemper.freedesktop.org
Wed Feb 5 08:08:48 UTC 2020


 sw/qa/extras/ooxmlexport/data/testTdf130167_spilloverHeader.docx |binary
 sw/qa/extras/ooxmlexport/ooxmlexport14.cxx                       |    9 +++++++++
 writerfilter/source/dmapper/DomainMapper.cxx                     |    3 +++
 3 files changed, 12 insertions(+)

New commits:
commit 6d9d4f94e9c0a94bf88d006ba8b157b4cabaeebc
Author:     Justin Luth <jluth at mail.com>
AuthorDate: Mon Feb 3 21:41:03 2020 +0300
Commit:     Miklos Vajna <vmiklos at collabora.com>
CommitDate: Wed Feb 5 09:08:13 2020 +0100

    tdf#130167 writerfilter: while bDiscardHeaderFooter, ignore inlines
    
    Inline objects from unused headers/footers were being loaded
    and then ignored, with the result that they were added to the
    next text section. Similar to git log -p -w 5510f5635021
    
    An earlier commit attempted to do the same thing I think.
    git log -p -w da0c3b50c7969
    My guess is that in this case we have MULTIPLE uses of the
    same image file, so ultimately it wasn't deleted from
    DrawObjects - and therefore could still be referenced.
    
    I found this fix by randomly trying to shut stuff off.
    It seems to make sense, but shapes are not my area
    of understanding.
    
    Change-Id: I748c0e59638bb83de8461c498e1676bbae47df92
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87909
    Tested-by: Jenkins
    Reviewed-by: Justin Luth <justin_luth at sil.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>

diff --git a/sw/qa/extras/ooxmlexport/data/testTdf130167_spilloverHeader.docx b/sw/qa/extras/ooxmlexport/data/testTdf130167_spilloverHeader.docx
new file mode 100644
index 000000000000..6bcafa285f18
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/testTdf130167_spilloverHeader.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx
index 1de85ff3ec83..d9d952bf5b4d 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx
@@ -144,6 +144,15 @@ DECLARE_OOXMLEXPORT_TEST(testTdf129522_removeShadowStyle, "tdf129522_removeShado
     CPPUNIT_ASSERT_EQUAL(table::ShadowLocation_NONE, aShadow.Location);
 }
 
+DECLARE_OOXMLEXPORT_TEST(testTdf130167_spilloverHeaderShape, "testTdf130167_spilloverHeader.docx")
+{
+    uno::Reference<text::XTextGraphicObjectsSupplier> xTextGraphicObjectsSupplier(mxComponent, uno::UNO_QUERY);
+    uno::Reference<container::XIndexAccess> xNameAccess(
+        xTextGraphicObjectsSupplier->getGraphicObjects(), uno::UNO_QUERY);
+    // graphics from discarded headers were being added to the text body. Reduced from 5 to 2 shapes overall.
+    CPPUNIT_ASSERT(xNameAccess->getCount() < 4);
+}
+
 DECLARE_OOXMLIMPORT_TEST(testTdf125038, "tdf125038.docx")
 {
     OUString aActual = getParagraph(1)->getString();
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index aa8e7f02d6b0..68179bf31f82 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -2236,6 +2236,9 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, const PropertyMapPtr& rContext )
     case NS_ooxml::LN_anchor_anchor: // at_character drawing
     case NS_ooxml::LN_inline_inline: // as_character drawing
     {
+        if ( m_pImpl->IsDiscardHeaderFooter() )
+            break;
+
         writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
         if( pProperties.get())
         {


More information about the Libreoffice-commits mailing list