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

Yogesh Bharate yogesh.bharate at synerzip.com
Tue Jul 29 07:27:42 PDT 2014


 sw/qa/core/data/ooxml/pass/fdo80580.docx          |binary
 writerfilter/source/dmapper/DomainMapper_Impl.cxx |    5 +++--
 2 files changed, 3 insertions(+), 2 deletions(-)

New commits:
commit 26b33fc2f2164481f5c423463f653012e4f4995d
Author: Yogesh Bharate <yogesh.bharate at synerzip.com>
Date:   Fri Jul 25 15:54:44 2014 +0530

    fdo#80580: LO crashes while opening the document on ubuntu build
    
    Problem Description:
    This issue is reproducible.
    
    Step to reproduce :
    1. Create .docx contains page break on first page.
    2. Second page contains '&'(ampersand) with some character like 'x','z','#' etc.
    3. Changes the size or font of '&character' which is on second page.
    4. Precaution will be take all this i.e page break and '&character' contains in single paragraph'.
    
    Solution:
    Added a check for Context Type which must be CONTEXT_CHARACTER for deferring character.
    
    Change-Id: I27989d2ca8d62fbd9efafe5ba7f4a65d56467c1e
    Reviewed-on: https://gerrit.libreoffice.org/10532
    Reviewed-by: Luboš Luňák <l.lunak at collabora.com>
    Tested-by: Luboš Luňák <l.lunak at collabora.com>

diff --git a/sw/qa/core/data/ooxml/pass/fdo80580.docx b/sw/qa/core/data/ooxml/pass/fdo80580.docx
new file mode 100644
index 0000000..90793fe
Binary files /dev/null and b/sw/qa/core/data/ooxml/pass/fdo80580.docx differ
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 17cbe64..dad72fa 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -1190,8 +1190,9 @@ void DomainMapper_Impl::appendTextPortion( const OUString& rString, PropertyMapP
 
     if (m_aTextAppendStack.empty())
         return;
-
-    if( pPropertyMap == m_pTopContext && !deferredCharacterProperties.empty())
+    // Before placing call to processDeferredCharacterProperties(), TopContextType should be CONTEXT_CHARACTER
+    // processDeferredCharacterProperties() invokes only if character inserted
+    if( pPropertyMap == m_pTopContext && !deferredCharacterProperties.empty() && (GetTopContextType() == CONTEXT_CHARACTER) )
         processDeferredCharacterProperties();
     uno::Reference< text::XTextAppend >  xTextAppend = m_aTextAppendStack.top().xTextAppend;
     if(xTextAppend.is() && ! getTableManager( ).isIgnore())


More information about the Libreoffice-commits mailing list