diff options
author | Jan Holesovsky <kendy@collabora.com> | 2014-01-22 11:54:19 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2014-01-22 15:09:28 +0100 |
commit | c2c530da69152ff9192b9726aa95961803ce9b29 (patch) | |
tree | 15e514573f35d9f376520fc2c015634dc4ee8c25 /sfx2/source/appl/appdispatchprovider.cxx | |
parent | 219a2939c9f58690356b2a3f64c580a0865fdc64 (diff) |
Introduce static inline cppu::acquire(), and make use of that.
This is much better approach compared to the callback function, as it allows
passing arguments to the c++ constructor directly, while still allowing some
additional initialization after having acquired the instance.
Change-Id: I5a0f981915dd58f1522ee6054e53a3550b29d624
Diffstat (limited to 'sfx2/source/appl/appdispatchprovider.cxx')
-rw-r--r-- | sfx2/source/appl/appdispatchprovider.cxx | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/sfx2/source/appl/appdispatchprovider.cxx b/sfx2/source/appl/appdispatchprovider.cxx index 6aa197c60df0..da2a6fd8d9c4 100644 --- a/sfx2/source/appl/appdispatchprovider.cxx +++ b/sfx2/source/appl/appdispatchprovider.cxx @@ -62,11 +62,7 @@ class SfxAppDispatchProvider : public ::cppu::WeakImplHelper2< css::frame::XAppD { css::uno::WeakReference < css::frame::XFrame > m_xFrame; public: - SfxAppDispatchProvider() - throw (css::uno::Exception, css::uno::RuntimeException); - - /// Initialization function after having acquire()'d. - void SAL_CALL constructorInit(const css::uno::Sequence< css::uno::Any >&) + SfxAppDispatchProvider(const css::uno::Sequence< css::uno::Any >&aArguments) throw (css::uno::Exception, css::uno::RuntimeException); virtual OUString SAL_CALL getImplementationName() @@ -94,13 +90,9 @@ public: throw (css::uno::RuntimeException); }; -SfxAppDispatchProvider::SfxAppDispatchProvider() +SfxAppDispatchProvider::SfxAppDispatchProvider(const css::uno::Sequence< css::uno::Any >& aArguments) throw (uno::Exception, uno::RuntimeException) { -} - -void SfxAppDispatchProvider::constructorInit(const css::uno::Sequence< css::uno::Any >& aArguments) throw (css::uno::Exception, css::uno::RuntimeException) -{ Reference < XFrame > xFrame; if ( aArguments.getLength() ) { @@ -261,12 +253,9 @@ throw (uno::RuntimeException) extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL com_sun_star_comp_sfx2_AppDispatchProvider_get_implementation( css::uno::XComponentContext *, - cppu::constructor_InitializationFunc &init_func) + css::uno::Sequence<css::uno::Any> const &arguments) { - // 2nd phase initialization needed - init_func = static_cast<cppu::constructor_InitializationFunc>(&SfxAppDispatchProvider::constructorInit); - - return static_cast<cppu::OWeakObject *>(new SfxAppDispatchProvider()); + return cppu::acquire(new SfxAppDispatchProvider(arguments)); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |