diff options
Diffstat (limited to 'comphelper/source/property/propagg.cxx')
-rw-r--r-- | comphelper/source/property/propagg.cxx | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/comphelper/source/property/propagg.cxx b/comphelper/source/property/propagg.cxx index 282405c63069..af1092c9748b 100644 --- a/comphelper/source/property/propagg.cxx +++ b/comphelper/source/property/propagg.cxx @@ -298,28 +298,28 @@ namespace internal void PropertyForwarder::doForward( sal_Int32 _nHandle, const Any& _rValue ) { OSL_ENSURE( m_rAggregationHelper.m_xAggregateSet.is(), "PropertyForwarder::doForward: no property set!" ); - if ( m_rAggregationHelper.m_xAggregateSet.is() ) - { - m_rAggregationHelper.forwardingPropertyValue( _nHandle ); + if ( !m_rAggregationHelper.m_xAggregateSet.is() ) + return; - OSL_ENSURE( m_nCurrentlyForwarding == -1, "PropertyForwarder::doForward: reentrance?" ); - m_nCurrentlyForwarding = _nHandle; + m_rAggregationHelper.forwardingPropertyValue( _nHandle ); - try - { - m_rAggregationHelper.m_xAggregateSet->setPropertyValue( m_rAggregationHelper.getPropertyName( _nHandle ), _rValue ); - // TODO: cache the property name? (it's a O(log n) search) - } - catch( const Exception& ) - { - m_rAggregationHelper.forwardedPropertyValue( _nHandle ); - throw; - } - - m_nCurrentlyForwarding = -1; + OSL_ENSURE( m_nCurrentlyForwarding == -1, "PropertyForwarder::doForward: reentrance?" ); + m_nCurrentlyForwarding = _nHandle; + try + { + m_rAggregationHelper.m_xAggregateSet->setPropertyValue( m_rAggregationHelper.getPropertyName( _nHandle ), _rValue ); + // TODO: cache the property name? (it's a O(log n) search) + } + catch( const Exception& ) + { m_rAggregationHelper.forwardedPropertyValue( _nHandle ); + throw; } + + m_nCurrentlyForwarding = -1; + + m_rAggregationHelper.forwardedPropertyValue( _nHandle ); } } |