From 7cfd340e92835c43788031ef184095f0f61a61a9 Mon Sep 17 00:00:00 2001 From: Jan Holesovsky Date: Tue, 16 Jul 2013 11:51:37 +0200 Subject: Fix crash & reduce nesting. Change-Id: Ifbfe401cd69678c278394d190a37cc41a28d5c56 --- .../source/standard/vclxaccessibletoolbox.cxx | 31 ++++++++++++---------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'accessibility') 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 ); } } // ----------------------------------------------------------------------------- -- cgit