diff options
author | Jan Holesovsky <kendy@suse.cz> | 2013-04-11 13:29:36 +0200 |
---|---|---|
committer | Jan Holesovsky <kendy@suse.cz> | 2013-04-11 18:27:37 +0200 |
commit | 763011690b18cdf47cb23125c98a5bfa5d17b2d6 (patch) | |
tree | fc4f14b9f9e86a171650a091d97bfed93d3a2c32 /editeng/source | |
parent | c226e93159730cc53947d271c587d3720d966546 (diff) |
i#79611: SvxFieldData::Create() is not supposed to throw.
Change-Id: Ied4e5cc9211b2a541006432d0b4d257f014249f4
Diffstat (limited to 'editeng/source')
-rw-r--r-- | editeng/source/items/flditem.cxx | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/editeng/source/items/flditem.cxx b/editeng/source/items/flditem.cxx index 2b3d090b796e..70fe69274e5c 100644 --- a/editeng/source/items/flditem.cxx +++ b/editeng/source/items/flditem.cxx @@ -43,7 +43,18 @@ SvxFieldData* SvxFieldData::Create(const uno::Reference<text::XTextContent>& xTe if (!xPropSet.is()) return NULL; - uno::Any aAny = xPropSet->getPropertyValue(UNO_TC_PROP_TEXTFIELD_TYPE); + // we do not support these fields from Writer, so make sure we do not throw + // here - see fdo#63436 how to possibly extend Writer to make use of this + uno::Any aAny; + try { + aAny = xPropSet->getPropertyValue(UNO_TC_PROP_TEXTFIELD_TYPE); + if ( !aAny.has<sal_Int32>() ) + return NULL; + } catch ( const beans::UnknownPropertyException& e ) + { + return NULL; + } + sal_Int32 nFieldType = aAny.get<sal_Int32>(); switch (nFieldType) |