sw/qa/extras/ooxmlexport/data/fdo60957-2.docx |binary
 sw/qa/extras/ooxmlexport/ooxmlexport5.cxx     |    9 +++++++++
 sw/source/filter/ww8/docxattributeoutput.cxx  |    6 +++---
 3 files changed, 12 insertions(+), 3 deletions(-)

New commits:
commit 89c85a4b7674ddfd697d539d59d27176c683a46c
Author: Caolán McNamara <caol...@redhat.com>
Date:   Wed Jun 17 13:21:23 2015 +0100

    fix crash on re-export of fdo60957-2.docx to docx
    
    Change-Id: I1a74a5f1877bfa72818ff0a38788eafe77eea581

diff --git a/sw/qa/extras/ooxmlexport/data/fdo60957-2.docx 
b/sw/qa/extras/ooxmlexport/data/fdo60957-2.docx
new file mode 100644
index 0000000..3819aaf
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/fdo60957-2.docx 
differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx 
b/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx
index dddbdee..0c215a9 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx
@@ -849,6 +849,15 @@ DECLARE_OOXMLEXPORT_TEST(testOO72950, "ooo72950-1.odt")
         assertXPath(pXmlDoc, "//w:tbl", 1);
 }
 
+//There are two tables to export in this doc the second of which is inside a
+//frame anchored to first cell of the first table. They must not be
+//considered the same table
+DECLARE_OOXMLEXPORT_TEST(fdo60957, "fdo60957-2.docx")
+{
+    if (xmlDocPtr pXmlDoc = parseExport("word/document.xml"))
+        assertXPath(pXmlDoc, "//w:tbl", 2);
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx 
b/sw/source/filter/ww8/docxattributeoutput.cxx
index 8db81f9..fd4af96 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -566,15 +566,15 @@ void DocxAttributeOutput::EndParagraph( 
ww8::WW8TableNodeInfoInner::Pointer_t pT
     // Write framePr
     if(!aFramePrTextbox.empty())
     {
-        ww8::WW8TableInfo::Pointer_t pOldTableInfo = m_rExport.m_pTableInfo;
         for (std::vector< boost::shared_ptr<sw::Frame> > ::iterator it = 
aFramePrTextbox.begin() ; it != aFramePrTextbox.end(); ++it)
         {
-            m_rExport.m_pTableInfo = ww8::WW8TableInfo::Pointer_t(new 
ww8::WW8TableInfo());
+            DocxTableExportContext aTableExportContext;
+            pushToTableExportContext(aTableExportContext);
             m_pCurrentFrame = it->get();
             m_rExport.SdrExporter().writeOnlyTextOfFrame(it->get());
             m_pCurrentFrame = NULL;
+            popFromTableExportContext(aTableExportContext);
         }
-        m_rExport.m_pTableInfo = pOldTableInfo;
         aFramePrTextbox.clear();
     }
     // Check for end of cell, rows, tables here
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to