toolkit/inc/awt/vclxwindows.hxx           |    3 +++
 toolkit/source/awt/vclxwindows.cxx        |   11 +++++++++++
 toolkit/source/controls/dialogcontrol.cxx |    2 +-
 3 files changed, 15 insertions(+), 1 deletion(-)

New commits:
commit 1fa58cc6cc9c3849753342a5d9a6ddfa461b5e66
Author:     Stephan Bergmann <[email protected]>
AuthorDate: Thu Dec 1 15:08:19 2022 +0100
Commit:     Stephan Bergmann <[email protected]>
CommitDate: Thu Dec 22 14:21:44 2022 +0000

    loplugin:unocast (VCLXMultiPage)
    
    (See the upcoming commit introducing that loplugin:unocast on why such
    dynamic_casts from UNO types are dangerous.)
    
    Change-Id: I7f755ce1483c5e2eca3066d12d90c5916d2f9087
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144751
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <[email protected]>

diff --git a/toolkit/inc/awt/vclxwindows.hxx b/toolkit/inc/awt/vclxwindows.hxx
index 78c73c06fcba..821418638492 100644
--- a/toolkit/inc/awt/vclxwindows.hxx
+++ b/toolkit/inc/awt/vclxwindows.hxx
@@ -177,6 +177,9 @@ public:
     VCLXMultiPage();
     virtual ~VCLXMultiPage() override;
 
+    sal_Int64 SAL_CALL getSomething(css::uno::Sequence<sal_Int8> const & 
aIdentifier) override;
+    static css::uno::Sequence<sal_Int8> const & getUnoTunnelId();
+
     // css::lang::XComponent
     void SAL_CALL dispose(  ) override;
 
diff --git a/toolkit/source/awt/vclxwindows.cxx 
b/toolkit/source/awt/vclxwindows.cxx
index 036e57366a6a..d8b3c8109c8a 100644
--- a/toolkit/source/awt/vclxwindows.cxx
+++ b/toolkit/source/awt/vclxwindows.cxx
@@ -2398,6 +2398,17 @@ void VCLXMultiPage::ImplGetPropertyIds( std::vector< 
sal_uInt16 > &rIds )
 VCLXMultiPage::~VCLXMultiPage()
 {
 }
+
+sal_Int64 VCLXMultiPage::getSomething(css::uno::Sequence<sal_Int8> const & 
aIdentifier) {
+    return comphelper::getSomethingImpl(
+        aIdentifier, this, comphelper::FallbackToGetSomethingOf<VCLXWindow>{});
+}
+
+css::uno::Sequence<sal_Int8> const & VCLXMultiPage::getUnoTunnelId() {
+    static comphelper::UnoIdInit const id;
+    return id.getSeq();
+}
+
 void SAL_CALL VCLXMultiPage::dispose()
 {
     SolarMutexGuard aGuard;
diff --git a/toolkit/source/controls/dialogcontrol.cxx 
b/toolkit/source/controls/dialogcontrol.cxx
index 92981a4f5fea..ba0054714c0c 100644
--- a/toolkit/source/controls/dialogcontrol.cxx
+++ b/toolkit/source/controls/dialogcontrol.cxx
@@ -792,7 +792,7 @@ void UnoMultiPageControl::bindPage( const uno::Reference< 
awt::XControl >& _rxCo
     TabPage* pPage = pXPage ? pXPage->getTabPage() : nullptr;
     if ( xTabCntrl.is() && pPage )
     {
-        VCLXMultiPage* pXTab = dynamic_cast< VCLXMultiPage* >( xTabCntrl.get() 
);
+        VCLXMultiPage* pXTab = comphelper::getFromUnoTunnel< VCLXMultiPage >( 
xTabCntrl );
         if ( pXTab )
         {
             OUString sTitle;

Reply via email to