diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-01-20 16:17:07 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-01-20 16:18:55 +0000 |
commit | 4345a3de0e5a600685fef5dc9fa422fe6849a0a3 (patch) | |
tree | 63fc8f8619a3f5ece5901172b967eb529f45e434 /sw | |
parent | bff635be1d45ce721f5e40c64f665a247b995133 (diff) |
Resolves: fdo#84943 make fodt non crashy like odt for formulas inside shapes
where odt checks for a null pTxtCrsr and skips the object and fodt
just ploughed ahead. i.e. make fodt equally useless as odt (fdo#84942)
Change-Id: I915cc1f7c065ea83377e895a932636c82698cf1f
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/filter/xml/xmltexti.cxx | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/sw/source/filter/xml/xmltexti.cxx b/sw/source/filter/xml/xmltexti.cxx index ef9ed0ce79d8..9849a90435e7 100644 --- a/sw/source/filter/xml/xmltexti.cxx +++ b/sw/source/filter/xml/xmltexti.cxx @@ -232,7 +232,7 @@ uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertOLEObject( assert(xCrsrTunnel.is() && "missing XUnoTunnel for Cursor"); OTextCursorHelper *pTxtCrsr = reinterpret_cast< OTextCursorHelper * >( sal::static_int_cast< sal_IntPtr >( xCrsrTunnel->getSomething( OTextCursorHelper::getUnoTunnelId() ))); - OSL_ENSURE( pTxtCrsr, "SwXTextCursor missing" ); + SAL_WARN_IF(!pTxtCrsr, "sw.uno", "SwXTextCursor missing"); SwDoc *pDoc = SwImport::GetDocFromXMLImport( rImport ); SfxItemSet aItemSet( pDoc->GetAttrPool(), RES_FRMATR_BEGIN, @@ -286,12 +286,16 @@ uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertOLEObject( lcl_setObjectVisualArea( xObj, nAspect, aTwipSize, MAP_TWIP ); } - pFrmFmt = pDoc->getIDocumentContentOperations().Insert( *pTxtCrsr->GetPaM(), - ::svt::EmbeddedObjectRef( xObj, embed::Aspects::MSOLE_CONTENT ), - &aItemSet, - NULL, - NULL ); - pOLENd = lcl_GetOLENode( pFrmFmt ); + if( pTxtCrsr ) + { + pFrmFmt = pDoc->getIDocumentContentOperations().Insert( *pTxtCrsr->GetPaM(), + ::svt::EmbeddedObjectRef( xObj, embed::Aspects::MSOLE_CONTENT ), + &aItemSet, + NULL, + NULL ); + pOLENd = lcl_GetOLENode( pFrmFmt ); + } + if( pOLENd ) aObjName = pOLENd->GetOLEObj().GetCurrentPersistName(); } |