framework/source/layoutmanager/layoutmanager.cxx |    4 ++--
 framework/source/uielement/newmenucontroller.cxx |    4 ++--
 include/toolkit/awt/vclxmenu.hxx                 |    5 -----
 toolkit/source/awt/vclxmenu.cxx                  |   10 +++-------
 toolkit/source/awt/vclxtopwindow.cxx             |    2 +-
 5 files changed, 8 insertions(+), 17 deletions(-)

New commits:
commit 8d97a90564abba49dcc072d33ddd12c93f4992fe
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Fri Jan 13 15:09:47 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sat Jan 14 10:51:22 2023 +0000

    XUnoTunnel->dynamic_cast in VCLXMenu
    
    Change-Id: Iee992e2e09647a7678fd05321e601a4c5bf0c430
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145469
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/framework/source/layoutmanager/layoutmanager.cxx 
b/framework/source/layoutmanager/layoutmanager.cxx
index 9220b805c83a..ec6ed5572d94 100644
--- a/framework/source/layoutmanager/layoutmanager.cxx
+++ b/framework/source/layoutmanager/layoutmanager.cxx
@@ -181,7 +181,7 @@ void LayoutManager::implts_createMenuBar(const OUString& 
rMenuBarName)
     if ( !xMenuBar.is() )
         return;
 
-    VCLXMenu* pAwtMenuBar = comphelper::getFromUnoTunnel<VCLXMenu>( xMenuBar );
+    VCLXMenu* pAwtMenuBar = dynamic_cast<VCLXMenu*>( xMenuBar.get() );
     if ( pAwtMenuBar )
     {
         MenuBar* pMenuBar = static_cast<MenuBar*>(pAwtMenuBar->GetMenu());
@@ -229,7 +229,7 @@ void LayoutManager::impl_clearUpMenuBar()
                     }
                 }
 
-                VCLXMenu* pAwtMenuBar = 
comphelper::getFromUnoTunnel<VCLXMenu>( xMenuBar );
+                VCLXMenu* pAwtMenuBar = dynamic_cast<VCLXMenu*>( 
xMenuBar.get() );
                 if ( pAwtMenuBar )
                     pSetMenuBar = 
static_cast<MenuBar*>(pAwtMenuBar->GetMenu());
             }
diff --git a/framework/source/uielement/newmenucontroller.cxx 
b/framework/source/uielement/newmenucontroller.cxx
index c36818341ad0..3e2260e3fae8 100644
--- a/framework/source/uielement/newmenucontroller.cxx
+++ b/framework/source/uielement/newmenucontroller.cxx
@@ -283,7 +283,7 @@ NewMenuController::~NewMenuController()
 // private function
 void NewMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu > const 
& rPopupMenu )
 {
-    VCLXPopupMenu* pPopupMenu    = static_cast<VCLXPopupMenu 
*>(comphelper::getFromUnoTunnel<VCLXMenu>( rPopupMenu ));
+    VCLXPopupMenu* pPopupMenu    = static_cast<VCLXPopupMenu 
*>(dynamic_cast<VCLXMenu*>( rPopupMenu.get() ));
     PopupMenu*     pVCLPopupMenu = nullptr;
 
     SolarMutexGuard aSolarMutexGuard;
@@ -367,7 +367,7 @@ void SAL_CALL NewMenuController::itemSelected( const 
css::awt::MenuEvent& rEvent
     if ( !xPopupMenu.is() )
         return;
 
-    VCLXPopupMenu* pPopupMenu = static_cast<VCLXPopupMenu 
*>(comphelper::getFromUnoTunnel<VCLXMenu>( xPopupMenu ));
+    VCLXPopupMenu* pPopupMenu = static_cast<VCLXPopupMenu 
*>(dynamic_cast<VCLXMenu*>( xPopupMenu.get() ));
     if ( !pPopupMenu )
         return;
 
diff --git a/include/toolkit/awt/vclxmenu.hxx b/include/toolkit/awt/vclxmenu.hxx
index 096c370bce82..bc971a2088ec 100644
--- a/include/toolkit/awt/vclxmenu.hxx
+++ b/include/toolkit/awt/vclxmenu.hxx
@@ -28,7 +28,6 @@
 #include <com/sun/star/awt/XPopupMenu.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/lang/XTypeProvider.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
 
 #include <comphelper/servicehelper.hxx>
 #include <cppuhelper/weak.hxx>
@@ -54,7 +53,6 @@ class TOOLKIT_DLLPUBLIC VCLXMenu :  public css::awt::XMenuBar,
                                     public css::awt::XPopupMenu,
                                     public css::lang::XServiceInfo,
                                     public css::lang::XTypeProvider,
-                                    public css::lang::XUnoTunnel,
                                     public ::cppu::OWeakObject
 {
 private:
@@ -87,9 +85,6 @@ public:
     void SAL_CALL acquire() noexcept override  { OWeakObject::acquire(); }
     void SAL_CALL release() noexcept override  { OWeakObject::release(); }
 
-    // css::lang::XUnoTunnel
-    UNO3_GETIMPLEMENTATION_DECL(VCLXMenu)
-
     // css::lang::XTypeProvider
     css::uno::Sequence< css::uno::Type >  SAL_CALL getTypes() override;
     css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override;
diff --git a/toolkit/source/awt/vclxmenu.cxx b/toolkit/source/awt/vclxmenu.cxx
index b17f32c2aebc..52edfb5caa49 100644
--- a/toolkit/source/awt/vclxmenu.cxx
+++ b/toolkit/source/awt/vclxmenu.cxx
@@ -214,22 +214,18 @@ css::uno::Any VCLXMenu::queryInterface(
                                         static_cast< css::awt::XMenu* 
>(static_cast<css::awt::XMenuBar*>(this)),
                                         static_cast< css::awt::XPopupMenu* 
>(this),
                                         static_cast< css::lang::XTypeProvider* 
>(this),
-                                        static_cast< css::lang::XServiceInfo* 
>(this),
-                                        static_cast< css::lang::XUnoTunnel* 
>(this) );
+                                        static_cast< css::lang::XServiceInfo* 
>(this) );
     else
         aRet = ::cppu::queryInterface(  rType,
                                         static_cast< css::awt::XMenu* 
>(static_cast<css::awt::XMenuBar*>(this)),
                                         static_cast< css::awt::XMenuBar* 
>(this),
                                         static_cast< css::lang::XTypeProvider* 
>(this),
-                                        static_cast< css::lang::XServiceInfo* 
>(this),
-                                        static_cast< css::lang::XUnoTunnel* 
>(this) );
+                                        static_cast< css::lang::XServiceInfo* 
>(this) );
 
     return (aRet.hasValue() ? aRet : OWeakObject::queryInterface( rType ));
 }
 
 
-UNO3_GETIMPLEMENTATION_IMPL( VCLXMenu );
-
 css::uno::Sequence< css::uno::Type > VCLXMenu::getTypes()
 {
     std::unique_lock aGuard( maMutex );
@@ -385,7 +381,7 @@ void VCLXMenu::setPopupMenu(
     SolarMutexGuard aSolarGuard;
     std::unique_lock aGuard( maMutex );
 
-    VCLXMenu* pVCLMenu = comphelper::getFromUnoTunnel<VCLXMenu>( rxPopupMenu );
+    VCLXMenu* pVCLMenu = dynamic_cast<VCLXMenu*>( rxPopupMenu.get() );
     DBG_ASSERT( pVCLMenu && pVCLMenu->GetMenu() && pVCLMenu->IsPopupMenu(), 
"setPopupMenu: Invalid Menu!" );
 
     if ( mpMenu && pVCLMenu && pVCLMenu->GetMenu() && pVCLMenu->IsPopupMenu() )
diff --git a/toolkit/source/awt/vclxtopwindow.cxx 
b/toolkit/source/awt/vclxtopwindow.cxx
index 7e392675b3f7..5a06c8e21506 100644
--- a/toolkit/source/awt/vclxtopwindow.cxx
+++ b/toolkit/source/awt/vclxtopwindow.cxx
@@ -128,7 +128,7 @@ void VCLXTopWindow::setMenuBar( const css::uno::Reference< 
css::awt::XMenuBar >&
         pSystemWindow->SetMenuBar( nullptr );
         if ( rxMenu.is() )
         {
-            VCLXMenu* pMenu = comphelper::getFromUnoTunnel<VCLXMenu>( rxMenu );
+            VCLXMenu* pMenu = dynamic_cast<VCLXMenu*>( rxMenu.get() );
             if ( pMenu && !pMenu->IsPopupMenu() )
                 pSystemWindow->SetMenuBar( static_cast<MenuBar*>( 
pMenu->GetMenu() ));
         }

Reply via email to