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

Miklos Vajna vmiklos at collabora.co.uk
Tue Oct 7 09:14:55 PDT 2014


 sw/qa/core/data/rtf/pass/kde52609.rtf          |    8 ++++++++
 writerfilter/source/rtftok/rtfdocumentimpl.cxx |   16 ++++++++++++++++
 2 files changed, 24 insertions(+)

New commits:
commit e1cbaebe7fe36690e192778c87b5eb63790017d7
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Oct 7 18:06:26 2014 +0200

    kde#52609 RTF import: fix memory leak
    
    This is similar to f7ef84640258e4ee6ddc4cc5cbf58a2d89860afa (abi#2128
    RTF import: fix memory leak, 2013-11-28).
    
    Change-Id: Id57320466e6fb302ec8616ccc9f4f9429b8eff21

diff --git a/sw/qa/core/data/rtf/pass/kde52609.rtf b/sw/qa/core/data/rtf/pass/kde52609.rtf
new file mode 100644
index 0000000..d222c38
--- /dev/null
+++ b/sw/qa/core/data/rtf/pass/kde52609.rtf
@@ -0,0 +1,8 @@
+{\rtf1
+{\headerl
+}
+{\footerl
+}
+first line\par
+second line\par
+}
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 1c07fb8..3caef99 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -4892,6 +4892,22 @@ int RTFDocumentImpl::popState()
     RTFParserState aState(m_aStates.top());
     m_bWasInFrame = aState.aFrame.inFrame();
 
+    // dmapper expects some content in header/footer, so if there would be nothing, add an empty paragraph.
+    if (m_pTokenizer->getGroup() == 1 && m_bFirstRun)
+    {
+        switch (m_nStreamType)
+        {
+        case NS_ooxml::LN_headerl:
+        case NS_ooxml::LN_headerr:
+        case NS_ooxml::LN_headerf:
+        case NS_ooxml::LN_footerl:
+        case NS_ooxml::LN_footerr:
+        case NS_ooxml::LN_footerf:
+            dispatchSymbol(RTF_PAR);
+            break;
+        }
+    }
+
     switch (aState.nDestinationState)
     {
     case DESTINATION_FONTTABLE:


More information about the Libreoffice-commits mailing list