From 57144fae2bd2296fe9a842ab87addf9dda5ff91a Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 5 Jul 2016 10:52:29 +0100 Subject: Resolves: tdf#100770 crash on loading specific docx use same safeguards as RemoveLastParagraph does Change-Id: I43ed4eb28f44654054fd266bc464840af7014fea (cherry picked from commit 000263f799d4aa9ad21e63f474def55438ce601e) Reviewed-on: https://gerrit.libreoffice.org/26944 Tested-by: Jenkins Reviewed-by: Miklos Vajna --- writerfilter/source/dmapper/DomainMapper_Impl.cxx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index ddaa8b78e928..a219894076f2 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -327,7 +327,14 @@ void DomainMapper_Impl::RemoveDummyParaForTableInSection() SectionPropertyMap* pSectionContext = dynamic_cast< SectionPropertyMap* >( pContext.get() ); if (!pSectionContext) return; - uno::Reference< text::XTextCursor > xCursor = GetTopTextAppend()->createTextCursorByRange(pSectionContext->GetStartingRange()); + + if (m_aTextAppendStack.empty()) + return; + uno::Reference< text::XTextAppend > xTextAppend = m_aTextAppendStack.top().xTextAppend; + if (!xTextAppend.is()) + return; + + uno::Reference< text::XTextCursor > xCursor = xTextAppend->createTextCursorByRange(pSectionContext->GetStartingRange()); // Remove the extra NumPicBullets from the document, // which get attached to the first paragraph in the @@ -366,7 +373,7 @@ void DomainMapper_Impl::RemoveLastParagraph( ) { if (m_aTextAppendStack.empty()) return; - uno::Reference< text::XTextAppend > xTextAppend = m_aTextAppendStack.top().xTextAppend; + uno::Reference< text::XTextAppend > xTextAppend = m_aTextAppendStack.top().xTextAppend; if (!xTextAppend.is()) return; try -- cgit