summaryrefslogtreecommitdiff
path: root/accessibility
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2013-07-16 11:51:37 +0200
committerJan Holesovsky <kendy@suse.cz>2013-07-17 13:27:46 +0200
commit7cfd340e92835c43788031ef184095f0f61a61a9 (patch)
tree6112f1941cbafb33abc57380a3aa4ed31ce998fd /accessibility
parent3183f794bf6d9d3da214b25a67240f67cfbee16d (diff)
Fix crash & reduce nesting.
Change-Id: Ifbfe401cd69678c278394d190a37cc41a28d5c56
Diffstat (limited to 'accessibility')
-rw-r--r--accessibility/source/standard/vclxaccessibletoolbox.cxx31
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 );
}
}
// -----------------------------------------------------------------------------