summaryrefslogtreecommitdiff
path: root/scripting
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2020-07-14 12:48:58 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2020-07-15 10:10:54 +0200
commite78b16632f5a3ad974574dd0354df3cef1f5c844 (patch)
tree38ea009a568ddfcf4734d9512f26a1b510cd3871 /scripting
parentb2835b2a65918c8ea73fde4ba6befa1fabbe6033 (diff)
scripting/basprov: create instances with uno constructors
See tdf#74608 for motivation. Change-Id: Id4a312df7b3ed4c4c81f7f1b42b8e8697d4bb784 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98742 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'scripting')
-rw-r--r--scripting/source/basprov/basprov.component5
-rw-r--r--scripting/source/basprov/basprov.cxx64
2 files changed, 13 insertions, 56 deletions
diff --git a/scripting/source/basprov/basprov.component b/scripting/source/basprov/basprov.component
index 8a660e38b2a8..d0d6bf974925 100644
--- a/scripting/source/basprov/basprov.component
+++ b/scripting/source/basprov/basprov.component
@@ -18,8 +18,9 @@
-->
<component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
- prefix="basprov" xmlns="http://openoffice.org/2010/uno-components">
- <implementation name="com.sun.star.comp.scripting.ScriptProviderForBasic">
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.scripting.ScriptProviderForBasic"
+ constructor="scripting_BasicProviderImpl_get_implementation">
<service name="com.sun.star.script.browse.BrowseNode"/>
<service name="com.sun.star.script.provider.LanguageScriptProvider"/>
<service name="com.sun.star.script.provider.ScriptProvider"/>
diff --git a/scripting/source/basprov/basprov.cxx b/scripting/source/basprov/basprov.cxx
index bd1832ba98ba..e1492af59995 100644
--- a/scripting/source/basprov/basprov.cxx
+++ b/scripting/source/basprov/basprov.cxx
@@ -60,28 +60,6 @@ using namespace ::sf_misc;
namespace basprov
{
-
- // component operations
-
-
- static OUString getImplementationName_BasicProviderImpl()
- {
- return "com.sun.star.comp.scripting.ScriptProviderForBasic";
- }
-
-
- static Sequence< OUString > getSupportedServiceNames_BasicProviderImpl()
- {
- static Sequence< OUString > s_Names{
- "com.sun.star.script.provider.ScriptProviderForBasic",
- "com.sun.star.script.provider.LanguageScriptProvider",
- "com.sun.star.script.provider.ScriptProvider",
- "com.sun.star.script.browse.BrowseNode"};
-
- return s_Names;
- }
-
-
// BasicProviderImpl
@@ -170,7 +148,7 @@ namespace basprov
// XServiceInfo
OUString BasicProviderImpl::getImplementationName( )
{
- return getImplementationName_BasicProviderImpl();
+ return "com.sun.star.comp.scripting.ScriptProviderForBasic";
}
sal_Bool BasicProviderImpl::supportsService( const OUString& rServiceName )
@@ -180,7 +158,11 @@ namespace basprov
Sequence< OUString > BasicProviderImpl::getSupportedServiceNames( )
{
- return getSupportedServiceNames_BasicProviderImpl();
+ return {
+ "com.sun.star.script.provider.ScriptProviderForBasic",
+ "com.sun.star.script.provider.LanguageScriptProvider",
+ "com.sun.star.script.provider.ScriptProvider",
+ "com.sun.star.script.browse.BrowseNode"};
}
@@ -484,40 +466,14 @@ namespace basprov
// component operations
-
- static Reference< XInterface > create_BasicProviderImpl(
- Reference< XComponentContext > const & xContext )
+ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+ scripting_BasicProviderImpl_get_implementation(
+ css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
{
- return static_cast< lang::XTypeProvider * >( new BasicProviderImpl( xContext ) );
+ return cppu::acquire(new BasicProviderImpl(context));
}
- struct ::cppu::ImplementationEntry const s_component_entries [] =
- {
- {
- create_BasicProviderImpl, getImplementationName_BasicProviderImpl,
- getSupportedServiceNames_BasicProviderImpl, ::cppu::createSingleComponentFactory,
- nullptr, 0
- },
- { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }
- };
-
-
} // namespace basprov
-
-// component exports
-
-
-extern "C"
-{
- SAL_DLLPUBLIC_EXPORT void * basprov_component_getFactory(
- const char * pImplName, void * pServiceManager,
- void * pRegistryKey )
- {
- return ::cppu::component_getFactoryHelper(
- pImplName, pServiceManager, pRegistryKey, ::basprov::s_component_entries );
- }
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */