writerfilter/source/dmapper/DomainMapper_Impl.cxx | 3 +++ writerfilter/source/filter/RtfFilter.cxx | 14 +++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-)
New commits: commit a360d5901565fe498cc932023dc8e37e92dc3ad5 Author: David Tardon <dtar...@redhat.com> Date: Mon May 14 14:48:00 2012 +0200 hide progress bar even if loading failed Change-Id: Ia330e70e393309dbbad025fc2ede8f4ab41a674c diff --git a/writerfilter/source/filter/RtfFilter.cxx b/writerfilter/source/filter/RtfFilter.cxx index 0f37279..7e862c8 100644 --- a/writerfilter/source/filter/RtfFilter.cxx +++ b/writerfilter/source/filter/RtfFilter.cxx @@ -69,6 +69,9 @@ sal_Bool RtfFilter::filter( const uno::Sequence< beans::PropertyValue >& aDescri return xFltr->filter(aDescriptor); } + sal_Bool bResult(sal_False); + uno::Reference<task::XStatusIndicator> xStatusIndicator; + try { MediaDescriptor aMediaDesc( aDescriptor ); @@ -89,7 +92,7 @@ sal_Bool RtfFilter::filter( const uno::Sequence< beans::PropertyValue >& aDescri uno::Reference<frame::XFrame> xFrame = aMediaDesc.getUnpackedValueOrDefault(MediaDescriptor::PROP_FRAME(), uno::Reference<frame::XFrame>()); - uno::Reference<task::XStatusIndicator> xStatusIndicator = aMediaDesc.getUnpackedValueOrDefault(MediaDescriptor::PROP_STATUSINDICATOR(), + xStatusIndicator = aMediaDesc.getUnpackedValueOrDefault(MediaDescriptor::PROP_STATUSINDICATOR(), uno::Reference<task::XStatusIndicator>()); writerfilter::Stream::Pointer_t pStream( @@ -97,20 +100,21 @@ sal_Bool RtfFilter::filter( const uno::Sequence< beans::PropertyValue >& aDescri writerfilter::rtftok::RTFDocument::Pointer_t const pDocument( writerfilter::rtftok::RTFDocumentFactory::createDocument(m_xContext, xInputStream, m_xDstDoc, xFrame, xStatusIndicator)); pDocument->resolve(*pStream); + bResult = sal_True; #ifdef DEBUG_IMPORT dmapperLogger->endDocument(); #endif - if (xStatusIndicator.is()) - xStatusIndicator->end(); sal_uInt32 nEndTime = osl_getGlobalTimer(); SAL_INFO("writerfilter.profile", OSL_THIS_FUNC << " finished in " << nEndTime - nStartTime << " ms"); - return sal_True; } catch (const uno::Exception& e) { SAL_INFO("writerfilter", "Exception caught: " << e.Message); - return sal_False; } + + if (xStatusIndicator.is()) + xStatusIndicator->end(); + return bResult; } void RtfFilter::cancel( ) throw (uno::RuntimeException) commit dfe0baa281d9d4701e9b3846880334213ccb05f5 Author: David Tardon <dtar...@redhat.com> Date: Mon May 14 14:42:22 2012 +0200 do not crash when opening rtf file with unclosed field group It still fails to load the file (General input/output error), because RTFDocumentImpl::resolve() throws io::UnexpectedEOFException, but that is a bit better than a crash .-) Example of such a file can be found in fdo#49666 or rhbz#819304 . Change-Id: I I1e575bf8e3194afe063297a4daf3e98eaaa510cc diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 3c4e8eb..c73b1cc 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -3137,6 +3137,9 @@ void DomainMapper_Impl::PopFieldContext() dmapper_logger->element("popFieldContext"); #endif + if (m_aFieldStack.empty()) + return; + FieldContextPtr pContext = m_aFieldStack.top(); OSL_ENSURE( pContext.get(), "no field context available"); if( pContext.get() ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits