[Libreoffice-commits] core.git: filter/source solenv/bin

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Mon Jul 13 10:43:27 UTC 2020


 filter/source/config/cache/contenthandlerfactory.cxx |   25 +++--------
 filter/source/config/cache/contenthandlerfactory.hxx |   40 ------------------
 filter/source/config/cache/filterconfig1.component   |   12 +++--
 filter/source/config/cache/filterfactory.cxx         |   26 +++---------
 filter/source/config/cache/filterfactory.hxx         |   41 -------------------
 filter/source/config/cache/frameloaderfactory.cxx    |   24 +++--------
 filter/source/config/cache/frameloaderfactory.hxx    |   39 ------------------
 filter/source/config/cache/registration.cxx          |   24 -----------
 filter/source/config/cache/typedetection.cxx         |   26 +++---------
 filter/source/config/cache/typedetection.hxx         |   41 -------------------
 solenv/bin/native-code.py                            |    5 ++
 11 files changed, 41 insertions(+), 262 deletions(-)

New commits:
commit eae2ac9de5c81d946c220e5f1f4c9a96dd66a2b6
Author:     Noel Grandin <noelgrandin at gmail.com>
AuthorDate: Sun Jul 12 21:57:49 2020 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Mon Jul 13 12:42:43 2020 +0200

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

diff --git a/filter/source/config/cache/contenthandlerfactory.cxx b/filter/source/config/cache/contenthandlerfactory.cxx
index 0a17930e7828..0f04e4f000d2 100644
--- a/filter/source/config/cache/contenthandlerfactory.cxx
+++ b/filter/source/config/cache/contenthandlerfactory.cxx
@@ -31,8 +31,8 @@ ContentHandlerFactory::ContentHandlerFactory(const css::uno::Reference< css::uno
  : m_xContext(rxContext)
 {
     BaseContainer::init(rxContext                                             ,
-                        ContentHandlerFactory::impl_getImplementationName()   ,
-                        ContentHandlerFactory::impl_getSupportedServiceNames(),
+                        "com.sun.star.comp.filter.config.ContentHandlerFactory"   ,
+                        { "com.sun.star.frame.ContentHandlerFactory" },
                         FilterCache::E_CONTENTHANDLER                         );
 }
 
@@ -92,25 +92,14 @@ css::uno::Sequence< OUString > SAL_CALL ContentHandlerFactory::getAvailableServi
     return BaseContainer::getElementNames();
 }
 
+} // namespace filter::config
 
-OUString ContentHandlerFactory::impl_getImplementationName()
-{
-    return "com.sun.star.comp.filter.config.ContentHandlerFactory";
-}
-
-
-css::uno::Sequence< OUString > ContentHandlerFactory::impl_getSupportedServiceNames()
-{
-    return { "com.sun.star.frame.ContentHandlerFactory" };
-}
-
-
-css::uno::Reference< css::uno::XInterface > ContentHandlerFactory::impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+filter_ContentHandlerFactory_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
 {
-    ContentHandlerFactory* pNew = new ContentHandlerFactory( comphelper::getComponentContext(xSMGR) );
-    return css::uno::Reference< css::uno::XInterface >(static_cast< css::lang::XMultiServiceFactory* >(pNew), css::uno::UNO_QUERY);
+    return cppu::acquire(new filter::config::ContentHandlerFactory(context));
 }
 
-} // namespace filter::config
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/filter/source/config/cache/contenthandlerfactory.hxx b/filter/source/config/cache/contenthandlerfactory.hxx
index bcb2dcfca9f1..9836ad003f6b 100644
--- a/filter/source/config/cache/contenthandlerfactory.hxx
+++ b/filter/source/config/cache/contenthandlerfactory.hxx
@@ -73,48 +73,8 @@ class ContentHandlerFactory : public ::cppu::ImplInheritanceHelper< BaseContaine
         virtual css::uno::Sequence< OUString > SAL_CALL getAvailableServiceNames() override;
 
 
-    // static uno helper!
-
     public:
 
-
-        /** @short  return the uno implementation name of this class.
-
-            @descr  Because this information is used at several places
-                    (and mostly an object instance of this class is not possible)
-                    it's implemented as a static function!
-
-            @return The fix uno implementation name of this class.
-         */
-        static OUString impl_getImplementationName();
-
-
-        /** @short  return the list of supported uno services of this class.
-
-            @descr  Because this information is used at several places
-                    (and mostly an object instance of this class is not possible)
-                    it's implemented as a static function!
-
-            @return The fix list of uno services supported by this class.
-         */
-        static css::uno::Sequence< OUString > impl_getSupportedServiceNames();
-
-
-        /** @short  return a new intsnace of this class.
-
-            @descr  This method is used by the uno service manager, to create
-                    a new instance of this service if needed.
-
-            @param  xSMGR
-                    reference to the uno service manager, which require
-                    this new instance. It should be passed to the new object
-                    so it can be used internally to create own needed uno resources.
-
-            @return The new instance of this service as a uno reference.
-         */
-        static css::uno::Reference< css::uno::XInterface > impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
-
-
       // Overrides to resolve ambiguity
       virtual css::uno::Any SAL_CALL getByName( const OUString& aName ) override
         { return BaseContainer::getByName(aName); }
diff --git a/filter/source/config/cache/filterconfig1.component b/filter/source/config/cache/filterconfig1.component
index 6674639c91f2..da841a112962 100644
--- a/filter/source/config/cache/filterconfig1.component
+++ b/filter/source/config/cache/filterconfig1.component
@@ -22,16 +22,20 @@
   <implementation name="com.sun.star.comp.filter.config.ConfigFlush">
     <service name="com.sun.star.document.FilterConfigRefresh"/>
   </implementation>
-  <implementation name="com.sun.star.comp.filter.config.ContentHandlerFactory">
+  <implementation name="com.sun.star.comp.filter.config.ContentHandlerFactory"
+    constructor="filter_ContentHandlerFactory_get_implementation">
     <service name="com.sun.star.frame.ContentHandlerFactory"/>
   </implementation>
-  <implementation name="com.sun.star.comp.filter.config.FilterFactory">
+  <implementation name="com.sun.star.comp.filter.config.FilterFactory"
+    constructor="filter_FilterFactory_get_implementation">
     <service name="com.sun.star.document.FilterFactory"/>
   </implementation>
-  <implementation name="com.sun.star.comp.filter.config.FrameLoaderFactory">
+  <implementation name="com.sun.star.comp.filter.config.FrameLoaderFactory"
+    constructor="filter_FrameLoaderFactory_get_implementation">
     <service name="com.sun.star.frame.FrameLoaderFactory"/>
   </implementation>
-  <implementation name="com.sun.star.comp.filter.config.TypeDetection">
+  <implementation name="com.sun.star.comp.filter.config.TypeDetection"
+    constructor="filter_TypeDetection_get_implementation">
     <service name="com.sun.star.document.TypeDetection"/>
   </implementation>
 </component>
diff --git a/filter/source/config/cache/filterfactory.cxx b/filter/source/config/cache/filterfactory.cxx
index 80ec0225a94a..d379857c7310 100644
--- a/filter/source/config/cache/filterfactory.cxx
+++ b/filter/source/config/cache/filterfactory.cxx
@@ -51,8 +51,8 @@ FilterFactory::FilterFactory(const css::uno::Reference< css::uno::XComponentCont
     : m_xContext(rxContext)
 {
     BaseContainer::init(rxContext                                         ,
-                        FilterFactory::impl_getImplementationName()   ,
-                        FilterFactory::impl_getSupportedServiceNames(),
+                        "com.sun.star.comp.filter.config.FilterFactory"   ,
+                         { "com.sun.star.document.FilterFactory" },
                         FilterCache::E_FILTER                         );
 }
 
@@ -498,25 +498,13 @@ std::vector<OUString> FilterFactory::impl_readSortedFilterListFromConfig(const O
     return std::vector<OUString>();
 }
 
+} // namespace filter
 
-OUString FilterFactory::impl_getImplementationName()
-{
-    return "com.sun.star.comp.filter.config.FilterFactory";
-}
-
-
-css::uno::Sequence< OUString > FilterFactory::impl_getSupportedServiceNames()
-{
-    return { "com.sun.star.document.FilterFactory" };
-}
-
-
-css::uno::Reference< css::uno::XInterface > FilterFactory::impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+filter_FilterFactory_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
 {
-    FilterFactory* pNew = new FilterFactory( comphelper::getComponentContext(xSMGR) );
-    return css::uno::Reference< css::uno::XInterface >(static_cast< css::lang::XMultiServiceFactory* >(pNew), css::uno::UNO_QUERY);
+    return cppu::acquire(new filter::config::FilterFactory(context));
 }
 
-} // namespace filter
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/filter/source/config/cache/filterfactory.hxx b/filter/source/config/cache/filterfactory.hxx
index 5cc06919e576..93588762797e 100644
--- a/filter/source/config/cache/filterfactory.hxx
+++ b/filter/source/config/cache/filterfactory.hxx
@@ -130,47 +130,6 @@ class FilterFactory : public ::cppu::ImplInheritanceHelper< BaseContainer
          */
         std::vector<OUString> impl_readSortedFilterListFromConfig(const OUString& sModule) const;
 
-
-    // static uno helper!
-
-    public:
-
-
-        /** @short  return the uno implementation name of this class.
-
-            @descr  Because this information is used at several places
-                    (and mostly an object instance of this class is not possible)
-                    it's implemented as a static function!
-
-            @return The fix uno implementation name of this class.
-         */
-        static OUString impl_getImplementationName();
-
-
-        /** @short  return the list of supported uno services of this class.
-
-            @descr  Because this information is used at several places
-                    (and mostly an object instance of this class is not possible)
-                    it's implemented as a static function!
-
-            @return The fix list of uno services supported by this class.
-         */
-        static css::uno::Sequence< OUString > impl_getSupportedServiceNames();
-
-
-        /** @short  return a new intsnace of this class.
-
-            @descr  This method is used by the uno service manager, to create
-                    a new instance of this service if needed.
-
-            @param  xSMGR
-                    reference to the uno service manager, which require
-                    this new instance. It should be passed to the new object
-                    so it can be used internally to create own needed uno resources.
-
-            @return The new instance of this service as a uno reference.
-         */
-        static css::uno::Reference< css::uno::XInterface > impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
 };
 
     } // namespace config
diff --git a/filter/source/config/cache/frameloaderfactory.cxx b/filter/source/config/cache/frameloaderfactory.cxx
index 00924aa22638..220fa252982f 100644
--- a/filter/source/config/cache/frameloaderfactory.cxx
+++ b/filter/source/config/cache/frameloaderfactory.cxx
@@ -31,8 +31,8 @@ FrameLoaderFactory::FrameLoaderFactory(const css::uno::Reference< css::uno::XCom
     : m_xContext(rxContext)
 {
     BaseContainer::init(rxContext                                              ,
-                        FrameLoaderFactory::impl_getImplementationName()   ,
-                        FrameLoaderFactory::impl_getSupportedServiceNames(),
+                        "com.sun.star.comp.filter.config.FrameLoaderFactory"  ,
+                        { "com.sun.star.frame.FrameLoaderFactory" },
                         FilterCache::E_FRAMELOADER                         );
 }
 
@@ -90,25 +90,15 @@ css::uno::Sequence< OUString > SAL_CALL FrameLoaderFactory::getAvailableServiceN
     return BaseContainer::getElementNames();
 }
 
-
-OUString FrameLoaderFactory::impl_getImplementationName()
-{
-    return "com.sun.star.comp.filter.config.FrameLoaderFactory";
-}
-
-
-css::uno::Sequence< OUString > FrameLoaderFactory::impl_getSupportedServiceNames()
-{
-    return { "com.sun.star.frame.FrameLoaderFactory" };
-}
+} // namespace filter::config
 
 
-css::uno::Reference< css::uno::XInterface > FrameLoaderFactory::impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+filter_FrameLoaderFactory_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
 {
-    FrameLoaderFactory* pNew = new FrameLoaderFactory( comphelper::getComponentContext(xSMGR) );
-    return css::uno::Reference< css::uno::XInterface >(static_cast< css::lang::XMultiServiceFactory* >(pNew), css::uno::UNO_QUERY);
+    return cppu::acquire(new filter::config::FrameLoaderFactory(context));
 }
 
-} // namespace filter::config
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/filter/source/config/cache/frameloaderfactory.hxx b/filter/source/config/cache/frameloaderfactory.hxx
index 7a0b744d2152..1c2d9cc2822e 100644
--- a/filter/source/config/cache/frameloaderfactory.hxx
+++ b/filter/source/config/cache/frameloaderfactory.hxx
@@ -73,47 +73,8 @@ class FrameLoaderFactory : public ::cppu::ImplInheritanceHelper< BaseContainer
         virtual css::uno::Sequence< OUString > SAL_CALL getAvailableServiceNames() override;
 
 
-    // static uno helper!
-
     public:
 
-
-        /** @short  return the uno implementation name of this class.
-
-            @descr  Because this information is used at several places
-                    (and mostly an object instance of this class is not possible)
-                    it's implemented as a static function!
-
-            @return The fix uno implementation name of this class.
-         */
-        static OUString impl_getImplementationName();
-
-
-        /** @short  return the list of supported uno services of this class.
-
-            @descr  Because this information is used at several places
-                    (and mostly an object instance of this class is not possible)
-                    it's implemented as a static function!
-
-            @return The fix list of uno services supported by this class.
-         */
-        static css::uno::Sequence< OUString > impl_getSupportedServiceNames();
-
-
-        /** @short  return a new intsnace of this class.
-
-            @descr  This method is used by the uno service manager, to create
-                    a new instance of this service if needed.
-
-            @param  xSMGR
-                    reference to the uno service manager, which require
-                    this new instance. It should be passed to the new object
-                    so it can be used internally to create own needed uno resources.
-
-            @return The new instance of this service as a uno reference.
-         */
-        static css::uno::Reference< css::uno::XInterface > impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
-
       // Overrides to resolve ambiguity
       virtual css::uno::Any SAL_CALL getByName( const OUString& aName ) override
         { return BaseContainer::getByName(aName); }
diff --git a/filter/source/config/cache/registration.cxx b/filter/source/config/cache/registration.cxx
index cd5c1ccad8a6..76e7775913c3 100644
--- a/filter/source/config/cache/registration.cxx
+++ b/filter/source/config/cache/registration.cxx
@@ -45,30 +45,6 @@ extern "C" SAL_DLLPUBLIC_EXPORT void*
     css::uno::Reference< css::lang::XSingleServiceFactory > xFactory;
     OUString sImplName = OUString::createFromAscii(pImplementationName);
 
-    if (TypeDetection::impl_getImplementationName() == sImplName)
-        xFactory = cppu::createSingleFactory( xSMGR,
-                                              TypeDetection::impl_getImplementationName(),
-                                              TypeDetection::impl_createInstance,
-                                              TypeDetection::impl_getSupportedServiceNames() );
-
-    if (FilterFactory::impl_getImplementationName() == sImplName)
-        xFactory = cppu::createSingleFactory( xSMGR,
-                                              FilterFactory::impl_getImplementationName(),
-                                              FilterFactory::impl_createInstance,
-                                              FilterFactory::impl_getSupportedServiceNames() );
-
-    if (ContentHandlerFactory::impl_getImplementationName() == sImplName)
-        xFactory = cppu::createSingleFactory( xSMGR,
-                                              ContentHandlerFactory::impl_getImplementationName(),
-                                              ContentHandlerFactory::impl_createInstance,
-                                              ContentHandlerFactory::impl_getSupportedServiceNames() );
-
-    if (FrameLoaderFactory::impl_getImplementationName() == sImplName)
-        xFactory = cppu::createSingleFactory( xSMGR,
-                                              FrameLoaderFactory::impl_getImplementationName(),
-                                              FrameLoaderFactory::impl_createInstance,
-                                              FrameLoaderFactory::impl_getSupportedServiceNames() );
-
     if (ConfigFlush::impl_getImplementationName() == sImplName)
         xFactory = cppu::createOneInstanceFactory( xSMGR,
                                                    ConfigFlush::impl_getImplementationName(),
diff --git a/filter/source/config/cache/typedetection.cxx b/filter/source/config/cache/typedetection.cxx
index 1b80a01dd2e8..ef164df45c26 100644
--- a/filter/source/config/cache/typedetection.cxx
+++ b/filter/source/config/cache/typedetection.cxx
@@ -56,8 +56,8 @@ TypeDetection::TypeDetection(const css::uno::Reference< css::uno::XComponentCont
 {
     css::frame::Desktop::create(m_xContext)->addTerminateListener(m_xTerminateListener.get());
     BaseContainer::init(rxContext                                     ,
-                        TypeDetection::impl_getImplementationName()   ,
-                        TypeDetection::impl_getSupportedServiceNames(),
+                        "com.sun.star.comp.filter.config.TypeDetection"   ,
+                        { "com.sun.star.document.TypeDetection" },
                         FilterCache::E_TYPE                           );
 }
 
@@ -1197,25 +1197,13 @@ bool TypeDetection::impl_validateAndSetFilterOnDescriptor(      utl::MediaDescri
     return false;
 }
 
+} // namespace filter
 
-OUString TypeDetection::impl_getImplementationName()
-{
-    return "com.sun.star.comp.filter.config.TypeDetection";
-}
-
-
-css::uno::Sequence< OUString > TypeDetection::impl_getSupportedServiceNames()
-{
-    return { "com.sun.star.document.TypeDetection" };
-}
-
-
-css::uno::Reference< css::uno::XInterface > TypeDetection::impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+filter_TypeDetection_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
 {
-    TypeDetection* pNew = new TypeDetection( comphelper::getComponentContext(xSMGR) );
-    return css::uno::Reference< css::uno::XInterface >(static_cast< css::document::XTypeDetection* >(pNew), css::uno::UNO_QUERY);
+    return cppu::acquire(new filter::config::TypeDetection(context));
 }
 
-} // namespace filter
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/filter/source/config/cache/typedetection.hxx b/filter/source/config/cache/typedetection.hxx
index e8ce727cfe12..93c2d32b1da5 100644
--- a/filter/source/config/cache/typedetection.hxx
+++ b/filter/source/config/cache/typedetection.hxx
@@ -327,47 +327,6 @@ public:
     virtual OUString SAL_CALL queryTypeByDescriptor(css::uno::Sequence< css::beans::PropertyValue >& lDescriptor,
                                                            sal_Bool                                         bAllowDeep ) override;
 
-
-// static uno helper!
-
-public:
-
-
-    /** @short  return the uno implementation name of this class.
-
-        @descr  Because this information is used at several places
-                (and mostly an object instance of this class is not possible)
-                it's implemented as a static function!
-
-        @return The fix uno implementation name of this class.
-     */
-    static OUString impl_getImplementationName();
-
-
-    /** @short  return the list of supported uno services of this class.
-
-        @descr  Because this information is used at several places
-                (and mostly an object instance of this class is not possible)
-                it's implemented as a static function!
-
-        @return The fix list of uno services supported by this class.
-     */
-    static css::uno::Sequence< OUString > impl_getSupportedServiceNames();
-
-
-    /** @short  return a new intsnace of this class.
-
-        @descr  This method is used by the uno service manager, to create
-                a new instance of this service if needed.
-
-        @param  xSMGR
-                reference to the uno service manager, which require
-                this new instance. It should be passed to the new object
-                so it can be used internally to create own needed uno resources.
-
-        @return The new instance of this service as a uno reference.
-     */
-    static css::uno::Reference< css::uno::XInterface > impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
 };
 
 class TerminateDetection : public cppu::WeakComponentImplHelper<css::frame::XTerminateListener>
diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py
index 4105d0691565..b28e05c408d7 100755
--- a/solenv/bin/native-code.py
+++ b/solenv/bin/native-code.py
@@ -154,6 +154,11 @@ core_constructor_list = [
     ("com_sun_star_comp_extensions_LoggerPool", "#ifdef ANDROID"),
     ("com_sun_star_comp_extensions_PlainTextFormatter", "#ifdef ANDROID"),
     ("com_sun_star_comp_extensions_SimpleTextFormatter", "#ifdef ANDROID"),
+# filter/source/config/cache/filterconfig1.component
+    "filter_TypeDetection_get_implementation",
+    "filter_FrameLoaderFactory_get_implementation",
+    "filter_FilterFactory_get_implementation",
+    "filter_ContentHandlerFactory_get_implementation",
 # filter/source/pdf/pdffilter.component
     "filter_PdfDecomposer_get_implementation",
     "filter_PDFExportInteractionHandler_get_implementation",


More information about the Libreoffice-commits mailing list