diff options
author | Justin Luth <justin_luth@sil.org> | 2017-08-11 12:50:37 -0400 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-08-16 08:48:57 +0200 |
commit | b6e0fcf85696b65aff160661a6f89d84a4e27962 (patch) | |
tree | bb54ac21af97346a717925722de25a298881641f /writerfilter/source | |
parent | 9dd82d0d68065ab95e20a1a489f4130299a8669e (diff) |
DomainMapper_Impl: add check for m_xTextFactory.is() where missing.
To test: make CppunitTest_writerfilter_rtftok
These crash triggering instances were hidden by the presense of \super
in topcontext-2.rtf - so I copied it, and only removed \super.
My fix for tdf#109382 triggered a unit test failure for one
missing m_xTextFactory. It seemed safe enough to test for all of them
that aren't in try/catch blocks, not just for the specific
instance I can prove with the test.
Change-Id: I1e317e05f9bcbbb14360941ce07af1bdf0edac6a
Reviewed-on: https://gerrit.libreoffice.org/41060
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'writerfilter/source')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 589dbf1b6770..2cd7f7fff6c2 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -2761,7 +2761,7 @@ uno::Reference<beans::XPropertySet> DomainMapper_Impl::FindOrCreateFieldMaster(c //get the master xMaster.set(xFieldMasterAccess->getByName(sFieldMasterName), uno::UNO_QUERY_THROW); } - else + else if( m_xTextFactory.is() ) { //create the master xMaster.set( m_xTextFactory->createInstance(sFieldMasterService), uno::UNO_QUERY_THROW); @@ -4145,7 +4145,7 @@ void DomainMapper_Impl::CloseFieldCommand() xFieldProperties->setPropertyValue( getPropertyName( PROP_REFERENCE_FIELD_PART ), uno::makeAny( nFieldPart )); } - else + else if( m_xTextFactory.is() ) { xFieldInterface = m_xTextFactory->createInstance("com.sun.star.text.TextField.GetExpression"); xFieldProperties.set(xFieldInterface, uno::UNO_QUERY); @@ -4306,6 +4306,9 @@ void DomainMapper_Impl::CloseFieldCommand() break; case FIELD_XE: { + if( !m_xTextFactory.is() ) + break; + uno::Reference< beans::XPropertySet > xTC( m_xTextFactory->createInstance( OUString::createFromAscii(aIt->second.cFieldServiceName)), @@ -4332,6 +4335,9 @@ void DomainMapper_Impl::CloseFieldCommand() break; case FIELD_CITATION: { + if( !m_xTextFactory.is() ) + break; + xFieldInterface = m_xTextFactory->createInstance( OUString::createFromAscii(aIt->second.cFieldServiceName)); uno::Reference< beans::XPropertySet > xTC(xFieldInterface, @@ -4353,6 +4359,9 @@ void DomainMapper_Impl::CloseFieldCommand() case FIELD_TC : { + if( !m_xTextFactory.is() ) + break; + uno::Reference< beans::XPropertySet > xTC( m_xTextFactory->createInstance( OUString::createFromAscii(aIt->second.cFieldServiceName)), |