summaryrefslogtreecommitdiff
path: root/writerfilter/source
diff options
context:
space:
mode:
authorJustin Luth <justin_luth@sil.org>2017-08-11 12:50:37 -0400
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-08-16 08:48:57 +0200
commitb6e0fcf85696b65aff160661a6f89d84a4e27962 (patch)
treebb54ac21af97346a717925722de25a298881641f /writerfilter/source
parent9dd82d0d68065ab95e20a1a489f4130299a8669e (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.cxx13
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)),