diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2013-04-15 20:37:52 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2013-04-16 10:36:49 +0200 |
commit | e7664052d6693598e773f4c9dd6b819213d80d60 (patch) | |
tree | 529ecbaba415026b78e0a9e208d072b95e543d3e /writerfilter | |
parent | Use -D_GLIBCXX_FULLY_DYNAMIC_STRING here, too, when needed (diff) | |
download | core-e7664052d6693598e773f4c9dd6b819213d80d60.tar.gz core-e7664052d6693598e773f4c9dd6b819213d80d60.zip |
fdo#61193 fix crash on RTF paste of footnote
Regression from 232ad2f2588beff50cb5c1f3b689c581ba317583.
Change-Id: Ia0873851979df5bba0a4693f044aab2aeff2b8e4
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 20413490b68f..6de9889338b0 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -722,6 +722,8 @@ void lcl_AddRangeAndStyle( void DomainMapper_Impl::CheckUnregisteredFrameConversion( ) { PropertyNameSupplier& rPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier(); + if (m_aTextAppendStack.empty()) + return; TextAppendContext& rAppendContext = m_aTextAppendStack.top(); // n#779642: ignore fly frame inside table as it could lead to messy situations if( rAppendContext.pLastParagraphProperties.get() && rAppendContext.pLastParagraphProperties->IsFrameMode() @@ -965,6 +967,8 @@ void DomainMapper_Impl::finishParagraph( PropertyMapPtr pPropertyMap ) #endif ParagraphPropertyMap* pParaContext = dynamic_cast< ParagraphPropertyMap* >( pPropertyMap.get() ); + if (!m_aTextAppendStack.size()) + return; TextAppendContext& rAppendContext = m_aTextAppendStack.top(); uno::Reference< text::XTextAppend > xTextAppend; if (!m_aTextAppendStack.empty()) @@ -1449,14 +1453,14 @@ void DomainMapper_Impl::PushFootOrEndnote( bool bIsFootnote ) } appendTextContent( uno::Reference< text::XTextContent >( xFootnoteText, uno::UNO_QUERY_THROW ), aFontProperties ); m_aTextAppendStack.push(TextAppendContext(uno::Reference< text::XTextAppend >( xFootnoteText, uno::UNO_QUERY_THROW ), - m_bIsNewDoc ? uno::Reference<text::XTextCursor>() : m_xBodyText->createTextCursorByRange(xFootnoteText->getStart()))); + m_bIsNewDoc ? uno::Reference<text::XTextCursor>() : xFootnoteText->createTextCursorByRange(xFootnoteText->getStart()))); // Redlines for the footnote anchor CheckRedline( xFootnote->getAnchor( ) ); } - catch( const uno::Exception& ) + catch( const uno::Exception& e ) { - OSL_FAIL( "exception in PushFootOrEndnote" ); + SAL_WARN("writerfilter", "exception in PushFootOrEndnote: " << e.Message); } } |