accessibility/inc/extended/accessibletabbarpagelist.hxx       |    9 
 accessibility/inc/standard/accessiblemenubasecomponent.hxx    |    5 
 accessibility/source/extended/accessibletabbarpagelist.cxx    |   65 ++--
 accessibility/source/standard/accessiblemenubasecomponent.cxx |  140 +++-------
 4 files changed, 85 insertions(+), 134 deletions(-)

New commits:
commit 89b6d1cd2ed3ea4633a8f4e90daf99001decef3e
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Wed Aug 30 15:28:46 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Thu Aug 31 10:34:20 2023 +0200

    use concrete type for AccessibleTabBarPageList::m_aAccessibleChildren
    
    avoid some unnecessary casting
    
    Change-Id: Ib8bddff9fe91afd192584fa1ad2728d0701f425a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156316
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/accessibility/inc/extended/accessibletabbarpagelist.hxx 
b/accessibility/inc/extended/accessibletabbarpagelist.hxx
index 858a475d7669..d3f3d56f317d 100644
--- a/accessibility/inc/extended/accessibletabbarpagelist.hxx
+++ b/accessibility/inc/extended/accessibletabbarpagelist.hxx
@@ -27,11 +27,9 @@
 
 #include <vector>
 
-
 namespace accessibility
 {
-
-
+    class AccessibleTabBarPage;
 
 
     class AccessibleTabBarPageList final : public cppu::ImplInheritanceHelper<
@@ -41,7 +39,7 @@ namespace accessibility
                                                css::lang::XServiceInfo>
     {
     private:
-        typedef std::vector< css::uno::Reference< 
css::accessibility::XAccessible > > AccessibleChildren;
+        typedef std::vector< rtl::Reference< AccessibleTabBarPage > > 
AccessibleChildren;
 
         AccessibleChildren      m_aAccessibleChildren;
         sal_Int32               m_nIndexInParent;
@@ -105,6 +103,9 @@ namespace accessibility
         virtual sal_Int64 SAL_CALL getSelectedAccessibleChildCount(  ) 
override;
         virtual css::uno::Reference< css::accessibility::XAccessible > 
SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
         virtual void SAL_CALL deselectAccessibleChild( sal_Int64 nChildIndex ) 
override;
+
+    private:
+        rtl::Reference< AccessibleTabBarPage > getAccessibleChildImpl( 
sal_Int64 i );
     };
 
 
diff --git a/accessibility/source/extended/accessibletabbarpagelist.cxx 
b/accessibility/source/extended/accessibletabbarpagelist.cxx
index 3eb8ab324c37..5faaed6846e2 100644
--- a/accessibility/source/extended/accessibletabbarpagelist.cxx
+++ b/accessibility/source/extended/accessibletabbarpagelist.cxx
@@ -52,20 +52,16 @@ namespace accessibility
         ,m_nIndexInParent( nIndexInParent )
     {
         if ( m_pTabBar )
-            m_aAccessibleChildren.assign( m_pTabBar->GetPageCount(), 
Reference< XAccessible >() );
+            m_aAccessibleChildren.assign( m_pTabBar->GetPageCount(), 
rtl::Reference< AccessibleTabBarPage >() );
     }
 
 
     void AccessibleTabBarPageList::UpdateShowing( bool bShowing )
     {
-        for (const Reference<XAccessible>& xChild : m_aAccessibleChildren)
+        for (const rtl::Reference<AccessibleTabBarPage>& xChild : 
m_aAccessibleChildren)
         {
             if ( xChild.is() )
-            {
-                AccessibleTabBarPage* pAccessibleTabBarPage = static_cast< 
AccessibleTabBarPage* >( xChild.get() );
-                if ( pAccessibleTabBarPage )
-                    pAccessibleTabBarPage->SetShowing( bShowing );
-            }
+                xChild->SetShowing( bShowing );
         }
     }
 
@@ -76,13 +72,9 @@ namespace accessibility
 
         if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() )
         {
-            Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+            rtl::Reference< AccessibleTabBarPage > xChild( 
m_aAccessibleChildren[i] );
             if ( xChild.is() )
-            {
-                AccessibleTabBarPage* pAccessibleTabBarPage = static_cast< 
AccessibleTabBarPage* >( xChild.get() );
-                if ( pAccessibleTabBarPage )
-                    pAccessibleTabBarPage->SetSelected( bSelected );
-            }
+                xChild->SetSelected( bSelected );
         }
     }
 
@@ -92,11 +84,10 @@ namespace accessibility
         if ( i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren.size() )
             return;
 
-        Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
-        if ( xChild.is() )
+        if ( m_pTabBar )
         {
-            AccessibleTabBarPage* pAccessibleTabBarPage = static_cast< 
AccessibleTabBarPage* >( xChild.get() );
-            if ( pAccessibleTabBarPage && m_pTabBar )
+            rtl::Reference< AccessibleTabBarPage > pAccessibleTabBarPage( 
m_aAccessibleChildren[i] );
+            if ( pAccessibleTabBarPage.is() )
             {
                 OUString sPageText = m_pTabBar->GetPageText( 
m_pTabBar->GetPageId( static_cast<sal_uInt16>(i) ) );
                 pAccessibleTabBarPage->SetPageText( sPageText );
@@ -111,7 +102,7 @@ namespace accessibility
             return;
 
         // insert entry in child list
-        m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, 
Reference< XAccessible >() );
+        m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, 
rtl::Reference< AccessibleTabBarPage >() );
 
         // send accessible child event
         Reference< XAccessible > xChild( getAccessibleChild( i ) );
@@ -130,7 +121,7 @@ namespace accessibility
             return;
 
         // get the accessible of the removed page
-        Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+        rtl::Reference< AccessibleTabBarPage > xChild( 
m_aAccessibleChildren[i] );
 
         // remove entry in child list
         m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
@@ -139,12 +130,10 @@ namespace accessibility
         if ( xChild.is() )
         {
             Any aOldValue, aNewValue;
-            aOldValue <<= xChild;
+            aOldValue <<= uno::Reference<XAccessible>(xChild);
             NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, 
aNewValue );
 
-            Reference< XComponent > xComponent( xChild, UNO_QUERY );
-            if ( xComponent.is() )
-                xComponent->dispose();
+            xChild->dispose();
         }
     }
 
@@ -159,7 +148,7 @@ namespace accessibility
             --j;
 
         // get the accessible of the moved page
-        Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+        rtl::Reference< AccessibleTabBarPage > xChild( 
m_aAccessibleChildren[i] );
 
         // remove entry in child list at old position
         m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
@@ -248,6 +237,8 @@ namespace accessibility
                 {
                     sal_uInt16 nPageId = 
static_cast<sal_uInt16>(reinterpret_cast<sal_IntPtr>(rVclWindowEvent.GetData()));
 
+                    OExternalLockGuard aGuard( this );
+
                     if ( nPageId == TabBar::PAGE_NOT_FOUND )
                     {
                         for ( sal_Int32 i = m_aAccessibleChildren.size() - 1; 
i >= 0; --i )
@@ -255,17 +246,13 @@ namespace accessibility
                     }
                     else
                     {
-                        for ( sal_Int64 i = 0, nCount = 
getAccessibleChildCount(); i < nCount; ++i )
+                        for ( sal_Int64 i = 0, nCount = 
m_aAccessibleChildren.size(); i < nCount; ++i )
                         {
-                            Reference< XAccessible > xChild( 
getAccessibleChild( i ) );
-                            if ( xChild.is() )
+                            sal_uInt16 nChildPageId = m_pTabBar->GetPageId( 
static_cast<sal_uInt16>(i) );
+                            if (nPageId == nChildPageId)
                             {
-                                AccessibleTabBarPage* pAccessibleTabBarPage = 
static_cast< AccessibleTabBarPage* >( xChild.get() );
-                                if ( pAccessibleTabBarPage && 
pAccessibleTabBarPage->GetPageId() == nPageId )
-                                {
-                                    RemoveChild( i );
-                                    break;
-                                }
+                                RemoveChild( i );
+                                break;
                             }
                         }
                     }
@@ -334,9 +321,8 @@ namespace accessibility
         AccessibleTabBarBase::disposing();
 
         // dispose all children
-        for (const Reference<XAccessible>& i : m_aAccessibleChildren)
+        for (const rtl::Reference<AccessibleTabBarPage>& xComponent : 
m_aAccessibleChildren)
         {
-            Reference< XComponent > xComponent( i, UNO_QUERY );
             if ( xComponent.is() )
                 xComponent->dispose();
         }
@@ -391,10 +377,15 @@ namespace accessibility
     {
         OExternalLockGuard aGuard( this );
 
+        return getAccessibleChildImpl(i);
+    }
+
+    rtl::Reference< AccessibleTabBarPage > 
AccessibleTabBarPageList::getAccessibleChildImpl( sal_Int64 i )
+    {
         if ( i < 0 || i >= getAccessibleChildCount() )
             throw IndexOutOfBoundsException();
 
-        Reference< XAccessible > xChild = m_aAccessibleChildren[i];
+        rtl::Reference< AccessibleTabBarPage > xChild = 
m_aAccessibleChildren[i];
         if ( !xChild.is() )
         {
             if ( m_pTabBar )
@@ -495,7 +486,7 @@ namespace accessibility
         Reference< XAccessible > xChild;
         for ( size_t i = 0; i < m_aAccessibleChildren.size(); ++i )
         {
-            Reference< XAccessible > xAcc = getAccessibleChild( i );
+            rtl::Reference< AccessibleTabBarPage > xAcc = 
getAccessibleChildImpl( i );
             if ( xAcc.is() )
             {
                 Reference< XAccessibleComponent > xComp( 
xAcc->getAccessibleContext(), UNO_QUERY );
commit 28c89e58d90ea73513e273db274eb46ff9081c35
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Wed Aug 30 15:16:01 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Thu Aug 31 10:34:10 2023 +0200

    use concrete type for OAccessibleMenuBaseComponent::m_aAccessibleChildren
    
    avoid some unnecessary casting
    
    Change-Id: Iaa9ce18d7a0772d894ec8f93e16f4f59ffaae77d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156315
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/accessibility/inc/standard/accessiblemenubasecomponent.hxx 
b/accessibility/inc/standard/accessiblemenubasecomponent.hxx
index 6dd8ab8eb760..337ee0a80d00 100644
--- a/accessibility/inc/standard/accessiblemenubasecomponent.hxx
+++ b/accessibility/inc/standard/accessiblemenubasecomponent.hxx
@@ -33,6 +33,7 @@ class Menu;
 class VclSimpleEvent;
 class VclMenuEvent;
 
+class OAccessibleMenuItemComponent;
 
 class OAccessibleMenuBaseComponent : public cppu::ImplInheritanceHelper<
                                          
comphelper::OAccessibleExtendedComponentHelper,
@@ -44,9 +45,9 @@ class OAccessibleMenuBaseComponent : public 
cppu::ImplInheritanceHelper<
     friend class VCLXAccessibleMenu;
 
 protected:
-    typedef std::vector< css::uno::Reference< css::accessibility::XAccessible 
> > AccessibleChildren;
+    typedef std::vector< rtl::Reference< OAccessibleMenuItemComponent > > 
AccessibleChildren;
 
-    AccessibleChildren      m_aAccessibleChildren;
+    AccessibleChildren      m_aAccessibleChildren1;
     VclPtr<Menu>            m_pMenu;
 
     bool                    m_bEnabled;
diff --git a/accessibility/source/standard/accessiblemenubasecomponent.cxx 
b/accessibility/source/standard/accessiblemenubasecomponent.cxx
index b66b019ca1b1..e5e390d59512 100644
--- a/accessibility/source/standard/accessiblemenubasecomponent.cxx
+++ b/accessibility/source/standard/accessiblemenubasecomponent.cxx
@@ -54,7 +54,7 @@ OAccessibleMenuBaseComponent::OAccessibleMenuBaseComponent( 
Menu* pMenu )
 {
     if ( m_pMenu )
     {
-        m_aAccessibleChildren.assign( m_pMenu->GetItemCount(), Reference< 
XAccessible >() );
+        m_aAccessibleChildren1.assign( m_pMenu->GetItemCount(), 
rtl::Reference< OAccessibleMenuItemComponent >() );
         m_pMenu->AddEventListener( LINK( this, OAccessibleMenuBaseComponent, 
MenuEventListener ) );
     }
 }
@@ -196,30 +196,22 @@ void OAccessibleMenuBaseComponent::SetChecked( bool 
bChecked )
 
 void OAccessibleMenuBaseComponent::UpdateEnabled( sal_Int32 i, bool bEnabled )
 {
-    if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() )
+    if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren1.size() )
     {
-        Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+        rtl::Reference< OAccessibleMenuBaseComponent > xChild( 
m_aAccessibleChildren1[i] );
         if ( xChild.is() )
-        {
-            OAccessibleMenuBaseComponent* pComp = static_cast< 
OAccessibleMenuBaseComponent* >( xChild.get() );
-            if ( pComp )
-                pComp->SetEnabled( bEnabled );
-        }
+            xChild->SetEnabled( bEnabled );
     }
 }
 
 
 void OAccessibleMenuBaseComponent::UpdateFocused( sal_Int32 i, bool bFocused )
 {
-    if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() )
+    if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren1.size() )
     {
-        Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+        rtl::Reference< OAccessibleMenuBaseComponent > xChild( 
m_aAccessibleChildren1[i] );
         if ( xChild.is() )
-        {
-            OAccessibleMenuBaseComponent* pComp = static_cast< 
OAccessibleMenuBaseComponent* >( xChild.get() );
-            if ( pComp )
-                pComp->SetFocused( bFocused );
-        }
+            xChild->SetFocused( bFocused );
     }
 }
 
@@ -227,14 +219,10 @@ void OAccessibleMenuBaseComponent::UpdateFocused( 
sal_Int32 i, bool bFocused )
 void OAccessibleMenuBaseComponent::UpdateVisible()
 {
     SetVisible( IsVisible() );
-    for (const Reference<XAccessible>& xChild : m_aAccessibleChildren)
+    for (const rtl::Reference<OAccessibleMenuItemComponent>& xChild : 
m_aAccessibleChildren1)
     {
         if ( xChild.is() )
-        {
-            OAccessibleMenuBaseComponent* pComp = static_cast< 
OAccessibleMenuBaseComponent* >( xChild.get() );
-            if ( pComp )
-                pComp->SetVisible( pComp->IsVisible() );
-        }
+            xChild->SetVisible( xChild->IsVisible() );
     }
 }
 
@@ -243,39 +231,31 @@ void OAccessibleMenuBaseComponent::UpdateSelected( 
sal_Int32 i, bool bSelected )
 {
     NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() 
);
 
-    if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() )
+    if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren1.size() )
     {
-        Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+        rtl::Reference< OAccessibleMenuBaseComponent > xChild( 
m_aAccessibleChildren1[i] );
         if ( xChild.is() )
-        {
-            OAccessibleMenuBaseComponent* pComp = static_cast< 
OAccessibleMenuBaseComponent* >( xChild.get() );
-            if ( pComp )
-                pComp->SetSelected( bSelected );
-        }
+            xChild->SetSelected( bSelected );
     }
 }
 
 
 void OAccessibleMenuBaseComponent::UpdateChecked( sal_Int32 i, bool bChecked )
 {
-    if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() )
+    if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren1.size() )
     {
-        Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+        rtl::Reference< OAccessibleMenuBaseComponent > xChild( 
m_aAccessibleChildren1[i] );
         if ( xChild.is() )
-        {
-            OAccessibleMenuBaseComponent* pComp = static_cast< 
OAccessibleMenuBaseComponent* >( xChild.get() );
-            if ( pComp )
-                pComp->SetChecked( bChecked );
-        }
+            xChild->SetChecked( bChecked );
     }
 }
 
 
 void OAccessibleMenuBaseComponent::UpdateAccessibleName( sal_Int32 i )
 {
-    if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() )
+    if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren1.size() )
     {
-        Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+        rtl::Reference< OAccessibleMenuBaseComponent > xChild( 
m_aAccessibleChildren1[i] );
         if ( xChild.is() )
         {
             OAccessibleMenuItemComponent* pComp = static_cast< 
OAccessibleMenuItemComponent* >( xChild.get() );
@@ -287,48 +267,42 @@ void OAccessibleMenuBaseComponent::UpdateAccessibleName( 
sal_Int32 i )
 
 void OAccessibleMenuBaseComponent::UpdateItemRole(sal_Int32 i)
 {
-    if (i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren.size())
+    if (i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren1.size())
         return;
 
-    Reference<XAccessible> xChild(m_aAccessibleChildren[i]);
+    rtl::Reference<OAccessibleMenuItemComponent> 
xChild(m_aAccessibleChildren1[i]);
     if (!xChild.is())
         return;
 
-    OAccessibleMenuItemComponent* pComp = 
static_cast<OAccessibleMenuItemComponent*>(xChild.get());
-    assert(pComp);
-    pComp->NotifyAccessibleEvent(AccessibleEventId::ROLE_CHANGED, Any(), 
Any());
+    xChild->NotifyAccessibleEvent(AccessibleEventId::ROLE_CHANGED, Any(), 
Any());
 }
 
 void OAccessibleMenuBaseComponent::UpdateItemText( sal_Int32 i )
 {
-    if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() )
+    if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren1.size() )
     {
-        Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+        rtl::Reference< OAccessibleMenuItemComponent > xChild( 
m_aAccessibleChildren1[i] );
         if ( xChild.is() )
-        {
-            OAccessibleMenuItemComponent* pComp = static_cast< 
OAccessibleMenuItemComponent* >( xChild.get() );
-            if ( pComp )
-                pComp->SetItemText( pComp->GetItemText() );
-        }
+            xChild->SetItemText( xChild->GetItemText() );
     }
 }
 
 
 sal_Int64 OAccessibleMenuBaseComponent::GetChildCount() const
 {
-    return m_aAccessibleChildren.size();
+    return m_aAccessibleChildren1.size();
 }
 
 
 Reference< XAccessible > OAccessibleMenuBaseComponent::GetChild( sal_Int64 i )
 {
-    Reference< XAccessible > xChild = m_aAccessibleChildren[i];
+    rtl::Reference< OAccessibleMenuItemComponent > xChild = 
m_aAccessibleChildren1[i];
     if ( !xChild.is() )
     {
         if ( m_pMenu )
         {
             // create a new child
-            rtl::Reference<OAccessibleMenuBaseComponent> pChild;
+            rtl::Reference<OAccessibleMenuItemComponent> pChild;
 
             if ( m_pMenu->GetItemType( static_cast<sal_uInt16>(i) ) == 
MenuItemType::SEPARATOR )
             {
@@ -354,7 +328,7 @@ Reference< XAccessible > 
OAccessibleMenuBaseComponent::GetChild( sal_Int64 i )
             xChild = pChild;
 
             // insert into menu item list
-            m_aAccessibleChildren[i] = xChild;
+            m_aAccessibleChildren1[i] = xChild;
         }
     }
 
@@ -393,22 +367,18 @@ void OAccessibleMenuBaseComponent::InsertChild( sal_Int32 
i )
     if ( i < 0 )
         return;
 
-    if ( o3tl::make_unsigned(i) > m_aAccessibleChildren.size() )
-        i = m_aAccessibleChildren.size();
+    if ( o3tl::make_unsigned(i) > m_aAccessibleChildren1.size() )
+        i = m_aAccessibleChildren1.size();
 
     // insert entry in child list
-    m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, 
Reference< XAccessible >() );
+    m_aAccessibleChildren1.insert( m_aAccessibleChildren1.begin() + i, 
rtl::Reference< OAccessibleMenuItemComponent >() );
 
     // update item position of accessible children
-    for ( sal_uInt32 j = i, nCount = m_aAccessibleChildren.size(); j < nCount; 
++j )
+    for ( sal_uInt32 j = i, nCount = m_aAccessibleChildren1.size(); j < 
nCount; ++j )
     {
-        Reference< XAccessible > xAcc( m_aAccessibleChildren[j] );
+        rtl::Reference< OAccessibleMenuItemComponent > xAcc( 
m_aAccessibleChildren1[j] );
         if ( xAcc.is() )
-        {
-            OAccessibleMenuItemComponent* pComp = static_cast< 
OAccessibleMenuItemComponent* >( xAcc.get() );
-            if ( pComp )
-                pComp->SetItemPos( static_cast<sal_uInt16>(j) );
-        }
+            xAcc->SetItemPos( static_cast<sal_uInt16>(j) );
     }
 
     // send accessible child event
@@ -424,37 +394,31 @@ void OAccessibleMenuBaseComponent::InsertChild( sal_Int32 
i )
 
 void OAccessibleMenuBaseComponent::RemoveChild( sal_Int32 i )
 {
-    if ( i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren.size() )
+    if ( i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren1.size() )
         return;
 
     // keep the accessible of the removed item
-    Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+    rtl::Reference< OAccessibleMenuItemComponent > xChild( 
m_aAccessibleChildren1[i] );
 
     // remove entry in child list
-    m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
+    m_aAccessibleChildren1.erase( m_aAccessibleChildren1.begin() + i );
 
     // update item position of accessible children
-    for ( sal_uInt32 j = i, nCount = m_aAccessibleChildren.size(); j < nCount; 
++j )
+    for ( sal_uInt32 j = i, nCount = m_aAccessibleChildren1.size(); j < 
nCount; ++j )
     {
-        Reference< XAccessible > xAcc( m_aAccessibleChildren[j] );
+        rtl::Reference< OAccessibleMenuItemComponent > xAcc( 
m_aAccessibleChildren1[j] );
         if ( xAcc.is() )
-        {
-            OAccessibleMenuItemComponent* pComp = static_cast< 
OAccessibleMenuItemComponent* >( xAcc.get() );
-            if ( pComp )
-                pComp->SetItemPos( static_cast<sal_uInt16>(j) );
-        }
+            xAcc->SetItemPos( static_cast<sal_uInt16>(j) );
     }
 
     // send accessible child event
     if ( xChild.is() )
     {
         Any aOldValue, aNewValue;
-        aOldValue <<= xChild;
+        aOldValue <<= uno::Reference<XAccessible>(xChild);
         NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue 
);
 
-        Reference< XComponent > xComponent( xChild, UNO_QUERY );
-        if ( xComponent.is() )
-            xComponent->dispose();
+        xChild->dispose();
     }
 }
 
@@ -469,16 +433,12 @@ bool OAccessibleMenuBaseComponent::IsChildHighlighted()
 {
     bool bChildHighlighted = false;
 
-    for (const Reference<XAccessible>& xChild : m_aAccessibleChildren)
+    for (const rtl::Reference<OAccessibleMenuItemComponent>& xChild : 
m_aAccessibleChildren1)
     {
-        if ( xChild.is() )
+        if ( xChild.is() && xChild->IsHighlighted() )
         {
-            OAccessibleMenuBaseComponent* pComp = static_cast< 
OAccessibleMenuBaseComponent* >( xChild.get() );
-            if ( pComp && pComp->IsHighlighted() )
-            {
-                bChildHighlighted = true;
-                break;
-            }
+            bChildHighlighted = true;
+            break;
         }
     }
 
@@ -629,13 +589,12 @@ void OAccessibleMenuBaseComponent::ProcessMenuEvent( 
const VclMenuEvent& rVclMen
                 m_pMenu = nullptr;
 
                 // dispose all menu items
-                for (const Reference<XAccessible>& i : m_aAccessibleChildren)
+                for (const rtl::Reference<OAccessibleMenuItemComponent>& 
xComponent : m_aAccessibleChildren1)
                 {
-                    Reference< XComponent > xComponent( i, UNO_QUERY );
                     if ( xComponent.is() )
                         xComponent->dispose();
                 }
-                m_aAccessibleChildren.clear();
+                m_aAccessibleChildren1.clear();
             }
         }
         break;
@@ -662,13 +621,12 @@ void OAccessibleMenuBaseComponent::disposing()
     m_pMenu = nullptr;
 
     // dispose all menu items
-    for (const Reference<XAccessible>& i : m_aAccessibleChildren)
+    for (const rtl::Reference<OAccessibleMenuItemComponent>& xComponent : 
m_aAccessibleChildren1)
     {
-        Reference< XComponent > xComponent( i, UNO_QUERY );
         if ( xComponent.is() )
             xComponent->dispose();
     }
-    m_aAccessibleChildren.clear();
+    m_aAccessibleChildren1.clear();
 }
 
 

Reply via email to