framework/source/services/frame.cxx |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

New commits:
commit 557615d97473dd4faea0914a8064d8525963fe5c
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Wed Dec 14 20:04:11 2022 +0100
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Fri Dec 16 15:40:24 2022 +0000

    Use rtl::Reference to avoid a dynamic_cast
    
    Change-Id: I3b9781cf00df7b740c8b29c6834e54035b255269
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144327
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>

diff --git a/framework/source/services/frame.cxx 
b/framework/source/services/frame.cxx
index 3721f8e40462..54df1a7eeac2 100644
--- a/framework/source/services/frame.cxx
+++ b/framework/source/services/frame.cxx
@@ -71,6 +71,7 @@
 #include <comphelper/multicontainer2.hxx>
 #include <cppuhelper/supportsservice.hxx>
 #include <cppuhelper/weak.hxx>
+#include <rtl/ref.hxx>
 #include <sal/log.hxx>
 #include <vcl/window.hxx>
 #include <vcl/wrkwin.hxx>
@@ -374,7 +375,7 @@ private:
     /// points to an external set progress, which should be used instead of 
the internal one.
     css::uno::WeakReference< css::task::XStatusIndicator >                  
m_xIndicatorInterception;
     /// helper for XDispatch/Provider and interception interfaces
-    css::uno::Reference< css::frame::XDispatchProvider >                    
m_xDispatchHelper;
+    rtl::Reference< InterceptionHelper >                    m_xDispatchHelper;
     /// helper for XFrames, XIndexAccess and XElementAccess interfaces
     css::uno::Reference< css::frame::XFrames >                              
m_xFramesHelper;
     /// container for ALL Listener
@@ -1474,10 +1475,9 @@ sal_Bool SAL_CALL XFrameImpl::setComponent(const 
css::uno::Reference< css::awt::
             SolarMutexGuard aWriteLock;
             m_xController = nullptr;
 
-            auto pInterceptionHelper = 
dynamic_cast<InterceptionHelper*>(m_xDispatchHelper.get());
-            if (pInterceptionHelper)
+            if (m_xDispatchHelper)
             {
-                rtl::Reference<DispatchProvider> pDispatchProvider = 
pInterceptionHelper->GetSlave();
+                rtl::Reference<DispatchProvider> pDispatchProvider = 
m_xDispatchHelper->GetSlave();
                 if (pDispatchProvider)
                 {
                     pDispatchProvider->ClearProtocolHandlers();
@@ -2117,7 +2117,7 @@ void SAL_CALL XFrameImpl::disposing()
     css::uno::Reference< css::lang::XEventListener > xDispatchHelper;
     {
         SolarMutexGuard g;
-        xDispatchHelper.set(m_xDispatchHelper, css::uno::UNO_QUERY_THROW);
+        xDispatchHelper = m_xDispatchHelper;
     }
     xDispatchHelper->disposing(aEvent);
     xDispatchHelper.clear();
@@ -2383,7 +2383,7 @@ void SAL_CALL 
XFrameImpl::registerDispatchProviderInterceptor(
     css::uno::Reference< css::frame::XDispatchProviderInterception > 
xInterceptionHelper;
     {
         SolarMutexGuard g;
-        xInterceptionHelper.set( m_xDispatchHelper, css::uno::UNO_QUERY );
+        xInterceptionHelper = m_xDispatchHelper;
     }
     if (xInterceptionHelper.is()) {
         xInterceptionHelper->registerDispatchProviderInterceptor( xInterceptor 
);
@@ -2402,7 +2402,7 @@ void SAL_CALL 
XFrameImpl::releaseDispatchProviderInterceptor(
     css::uno::Reference< css::frame::XDispatchProviderInterception > 
xInterceptionHelper;
     {
         SolarMutexGuard g;
-        xInterceptionHelper.set( m_xDispatchHelper, css::uno::UNO_QUERY );
+        xInterceptionHelper = m_xDispatchHelper;
     }
     if (xInterceptionHelper.is()) {
         xInterceptionHelper->releaseDispatchProviderInterceptor( xInterceptor 
);

Reply via email to