[Libreoffice-commits] core.git: scripting/source

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Wed Jul 15 08:08:54 UTC 2020


 scripting/source/protocolhandler/protocolhandler.component |    5 
 scripting/source/protocolhandler/scripthandler.cxx         |   73 -------------
 scripting/source/protocolhandler/scripthandler.hxx         |   12 --
 3 files changed, 8 insertions(+), 82 deletions(-)

New commits:
commit b2835b2a65918c8ea73fde4ba6befa1fabbe6033
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Tue Jul 14 12:35:28 2020 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Wed Jul 15 10:08:08 2020 +0200

    scripting/protocolhandler: create instances with uno constructors
    
    See tdf#74608 for motivation.
    
    Change-Id: I5618d68317a24bfe92dc166ffc81dcf5ffeba1e1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98740
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/scripting/source/protocolhandler/protocolhandler.component b/scripting/source/protocolhandler/protocolhandler.component
index d569cfe9911a..959c332c0e86 100644
--- a/scripting/source/protocolhandler/protocolhandler.component
+++ b/scripting/source/protocolhandler/protocolhandler.component
@@ -18,8 +18,9 @@
  -->
 
 <component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
-    prefix="protocolhandler" xmlns="http://openoffice.org/2010/uno-components">
-  <implementation name="com.sun.star.comp.ScriptProtocolHandler">
+    xmlns="http://openoffice.org/2010/uno-components">
+  <implementation name="com.sun.star.comp.ScriptProtocolHandler"
+    constructor="scripting_ScriptProtocolHandler_get_implementation">
     <service name="com.sun.star.frame.ProtocolHandler"/>
   </implementation>
 </component>
diff --git a/scripting/source/protocolhandler/scripthandler.cxx b/scripting/source/protocolhandler/scripthandler.cxx
index a759ef63070c..78d754300cfa 100644
--- a/scripting/source/protocolhandler/scripthandler.cxx
+++ b/scripting/source/protocolhandler/scripthandler.cxx
@@ -413,7 +413,7 @@ ScriptProtocolHandler::~ScriptProtocolHandler()
 /* XServiceInfo */
 OUString SAL_CALL ScriptProtocolHandler::getImplementationName( )
 {
-    return impl_getStaticImplementationName();
+    return "com.sun.star.comp.ScriptProtocolHandler";
 }
 
 /* XServiceInfo */
@@ -424,81 +424,18 @@ sal_Bool SAL_CALL ScriptProtocolHandler::supportsService(const OUString& sServic
 
 /* XServiceInfo */
 Sequence< OUString > SAL_CALL ScriptProtocolHandler::getSupportedServiceNames()
-{
-    return impl_getStaticSupportedServiceNames();
-}
-
-/* Helper for XServiceInfo */
-Sequence< OUString > ScriptProtocolHandler::impl_getStaticSupportedServiceNames()
 {
     return {"com.sun.star.frame.ProtocolHandler"};
 }
 
-/* Helper for XServiceInfo */
-OUString ScriptProtocolHandler::impl_getStaticImplementationName()
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+scripting_ScriptProtocolHandler_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
 {
-    return "com.sun.star.comp.ScriptProtocolHandler";
-}
-
-/* Helper for registry */
-Reference< XInterface > SAL_CALL ScriptProtocolHandler::impl_createInstance(
-const Reference< css::lang::XMultiServiceFactory >& xServiceManager )
-{
-    return Reference< XInterface > ( *new ScriptProtocolHandler( comphelper::getComponentContext(xServiceManager) ) );
-}
-
-/* Factory for registration */
-Reference< XSingleServiceFactory > ScriptProtocolHandler::impl_createFactory(
-const Reference< XMultiServiceFactory >& xServiceManager )
-{
-    Reference< XSingleServiceFactory > xReturn (
-        cppu::createSingleFactory( xServiceManager,
-            ScriptProtocolHandler::impl_getStaticImplementationName(),
-            ScriptProtocolHandler::impl_createInstance,
-            ScriptProtocolHandler::impl_getStaticSupportedServiceNames() )
-    );
-    return xReturn;
+    return cppu::acquire(new ScriptProtocolHandler(context));
 }
 
 } // namespace scripting_protocolhandler
 
-extern "C"
-{
-    SAL_DLLPUBLIC_EXPORT void* protocolhandler_component_getFactory( const char * pImplementationName ,
-                                         void * pServiceManager ,
-                                         void * )
-    {
-        // Set default return value for this operation - if it failed.
-        void * pReturn = nullptr ;
-
-        if (
-            ( pImplementationName != nullptr ) &&
-            ( pServiceManager != nullptr )
-        )
-        {
-            // Define variables which are used in following macros.
-            css::uno::Reference< css::lang::XSingleServiceFactory > xFactory;
-            css::uno::Reference< css::lang::XMultiServiceFactory > xServiceManager(
-                static_cast< css::lang::XMultiServiceFactory* >( pServiceManager ) ) ;
-
-            if ( ::scripting_protocolhandler::ScriptProtocolHandler::impl_getStaticImplementationName().equalsAscii(
-                    pImplementationName ) )
-            {
-                xFactory = ::scripting_protocolhandler::ScriptProtocolHandler::impl_createFactory( xServiceManager );
-            }
-
-            // Factory is valid - service was found.
-            if ( xFactory.is() )
-            {
-                xFactory->acquire();
-                pReturn = xFactory.get();
-            }
-        }
-
-        // Return with result of this operation.
-        return pReturn ;
-    }
-} // extern "C"
-
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/scripting/source/protocolhandler/scripthandler.hxx b/scripting/source/protocolhandler/scripthandler.hxx
index 1a40356463af..c7c3811efae4 100644
--- a/scripting/source/protocolhandler/scripthandler.hxx
+++ b/scripting/source/protocolhandler/scripthandler.hxx
@@ -82,18 +82,6 @@ public:
     virtual sal_Bool SAL_CALL supportsService( const OUString& sServiceName ) override;
     virtual css::uno::Sequence < OUString > SAL_CALL getSupportedServiceNames() override;
 
-    /* Helper for XServiceInfo */
-    static css::uno::Sequence < OUString > impl_getStaticSupportedServiceNames();
-    static OUString impl_getStaticImplementationName();
-
-    /* Helper for registry */
-    /// @throws css::uno::RuntimeException
-    static css::uno::Reference < css::uno::XInterface > SAL_CALL
-    impl_createInstance(
-        const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager );
-    static css::uno::Reference < css::lang::XSingleServiceFactory > impl_createFactory(
-        const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager );
-
     /* Implementation for XDispatchProvider */
     virtual css::uno::Reference < css::frame::XDispatch > SAL_CALL
     queryDispatch( const css::util::URL& aURL, const OUString& sTargetFrameName,


More information about the Libreoffice-commits mailing list