writerfilter/source/dmapper/DomainMapper_Impl.cxx |   10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

New commits:
commit 0dd1d80f48e94c4cd16095bace52664ce1e8a3a9
Author:     Michael Stahl <michael.st...@cib.de>
AuthorDate: Wed Sep 25 13:18:01 2019 +0200
Commit:     Michael Stahl <michael.st...@cib.de>
CommitDate: Thu Sep 26 10:30:12 2019 +0200

    writerfilter: fix crash on import of tdf113230-1.docx
    
    The SvxUnoTextBase::finishParagraph() returns null because there's no
    GetTextForwarder(); in any case the ListId property isn't supported by
    SvxUnoTextRange.
    
    (regression from 7992bd73a2307edce96a145e954f8e4c3ab9f57d)
    
    Change-Id: I8f63d805a593a5950c8cb08eaeebd34e977b4700
    Reviewed-on: https://gerrit.libreoffice.org/79552
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@cib.de>

diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx 
b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 81acdf59ebce..f8d67f0710c1 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -1527,7 +1527,8 @@ void DomainMapper_Impl::finishParagraph( const 
PropertyMapPtr& pPropertyMap, con
                     xTextRange = xTextAppend->finishParagraph( 
comphelper::containerToSequence(aProperties) );
                     m_xPreviousParagraph.set(xTextRange, uno::UNO_QUERY);
 
-                    if (isNumberingViaStyle || itNumberingRules != 
aProperties.end())
+                    if (m_xPreviousParagraph.is() && // null for SvxUnoTextBase
+                        (isNumberingViaStyle || itNumberingRules != 
aProperties.end()))
                     {
                         
assert(dynamic_cast<ParagraphPropertyMap*>(pPropertyMap.get()));
                         sal_Int32 const nListId( isNumberingViaStyle
@@ -1535,8 +1536,11 @@ void DomainMapper_Impl::finishParagraph( const 
PropertyMapPtr& pPropertyMap, con
                             : 
static_cast<ParagraphPropertyMap*>(pPropertyMap.get())->GetListId());
                         if (ListDef::Pointer const& pList = 
m_pListTable->GetList(nListId))
                         {   // styles could refer to non-existing lists...
-                            if (AbstractListDef::Pointer const& pAbsList =
-                                    pList->GetAbstractDefinition())
+                            AbstractListDef::Pointer const& pAbsList =
+                                    pList->GetAbstractDefinition();
+                            if (pAbsList &&
+                                // SvxUnoTextRange doesn't have ListId
+                                
m_xPreviousParagraph->getPropertySetInfo()->hasPropertyByName("ListId"))
                             {
                                 OUString paraId;
                                 
m_xPreviousParagraph->getPropertyValue("ListId") >>= paraId;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to