diff options
author | Jan Holesovsky <kendy@suse.cz> | 2013-07-16 11:51:37 +0200 |
---|---|---|
committer | Jan Holesovsky <kendy@suse.cz> | 2013-07-17 13:27:46 +0200 |
commit | 7cfd340e92835c43788031ef184095f0f61a61a9 (patch) | |
tree | 6112f1941cbafb33abc57380a3aa4ed31ce998fd /accessibility | |
parent | 3183f794bf6d9d3da214b25a67240f67cfbee16d (diff) |
Fix crash & reduce nesting.
Change-Id: Ifbfe401cd69678c278394d190a37cc41a28d5c56
Diffstat (limited to 'accessibility')
-rw-r--r-- | accessibility/source/standard/vclxaccessibletoolbox.cxx | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/accessibility/source/standard/vclxaccessibletoolbox.cxx b/accessibility/source/standard/vclxaccessibletoolbox.cxx index 205c08b6696e..452083eed455 100644 --- a/accessibility/source/standard/vclxaccessibletoolbox.cxx +++ b/accessibility/source/standard/vclxaccessibletoolbox.cxx @@ -484,21 +484,24 @@ void VCLXAccessibleToolBox::HandleSubToolBarEvent( const VclWindowEvent& rVclWin void VCLXAccessibleToolBox::ReleaseSubToolBox( ToolBox* _pSubToolBox ) { ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() ); - if ( pToolBox ) + if ( !pToolBox ) + return; + + sal_Int32 nIndex = pToolBox->GetItemPos( pToolBox->GetCurItemId() ); + if ( nIndex == SAL_MAX_UINT16 ) + return; // not found + + Reference< XAccessible > xItem = getAccessibleChild( nIndex ); + if ( !xItem.is() ) + return; + + Reference< XAccessible > xChild = _pSubToolBox->GetAccessible(); + VCLXAccessibleToolBoxItem* pItem = + static_cast< VCLXAccessibleToolBoxItem* >( xItem.get() ); + if ( pItem->GetChild() == xChild ) { - sal_Int32 nIndex = pToolBox->GetItemPos( pToolBox->GetCurItemId() ); - Reference< XAccessible > xItem = getAccessibleChild( nIndex ); - if ( xItem.is() ) - { - Reference< XAccessible > xChild = _pSubToolBox->GetAccessible(); - VCLXAccessibleToolBoxItem* pItem = - static_cast< VCLXAccessibleToolBoxItem* >( xItem.get() ); - if ( pItem->GetChild() == xChild ) - { - pItem->SetChild( Reference< XAccessible >() ); - pItem->NotifyChildEvent( xChild, false ); - } - } + pItem->SetChild( Reference< XAccessible >() ); + pItem->NotifyChildEvent( xChild, false ); } } // ----------------------------------------------------------------------------- |