Kaydet (Commit) bdeb57c2 authored tarafından Matúš Kukan's avatar Matúš Kukan

Initialize constructor based implementations in one place.

Change-Id: I324f25bb5ec7d792c3e015815f2a11b08f519764
üst a3f97e65
......@@ -20,6 +20,7 @@
#include "com/sun/star/container/ElementExistException.hpp"
#include "com/sun/star/container/XEnumeration.hpp"
#include "com/sun/star/container/XNameContainer.hpp"
#include "com/sun/star/lang/XInitialization.hpp"
#include "com/sun/star/lang/XServiceInfo.hpp"
#include "com/sun/star/lang/XSingleComponentFactory.hpp"
#include "com/sun/star/lang/XSingleServiceFactory.hpp"
......@@ -601,12 +602,18 @@ ImplementationWrapper::createInstanceWithArgumentsAndContext(
throw (css::uno::Exception, css::uno::RuntimeException)
{
loadImplementation(Context);
return constructor_ != 0
? css::uno::Reference<css::uno::XInterface>(
(*constructor_)(Context.get(), Arguments.get()), SAL_NO_ACQUIRE)
: factory1_.is()
? factory1_->createInstanceWithArgumentsAndContext(Arguments, Context)
: factory2_->createInstanceWithArguments(Arguments);
if (constructor_ != 0) {
css::uno::Reference<css::uno::XInterface> xRet(
(*constructor_)(Context.get(), Arguments.get()), SAL_NO_ACQUIRE);
css::uno::Reference<css::lang::XInitialization> xInit(
xRet, css::uno::UNO_QUERY);
if (xInit.is())
xInit->initialize(Arguments);
return xRet;
} else
return factory1_.is()
? factory1_->createInstanceWithArgumentsAndContext(Arguments, Context)
: factory2_->createInstanceWithArguments(Arguments);
}
css::uno::Reference< css::uno::XInterface >
......@@ -928,9 +935,14 @@ cppuhelper::ServiceManager::createInstanceWithArgumentsAndContext(
return css::uno::Reference< css::uno::XInterface >();
}
if (impl->constructor != 0) {
return css::uno::Reference<css::uno::XInterface>(
css::uno::Reference<css::uno::XInterface> xRet(
(*impl->constructor)(Context.get(), Arguments.get()),
SAL_NO_ACQUIRE);
css::uno::Reference<css::lang::XInitialization> xInit(
xRet, css::uno::UNO_QUERY);
if (xInit.is())
xInit->initialize(Arguments);
return xRet;
} else if (impl->factory1.is()) {
return impl->factory1->createInstanceWithArgumentsAndContext(
Arguments, Context);
......
......@@ -281,12 +281,8 @@ com_sun_star_comp_embed_DocumentCloser_get_implementation(
SAL_UNUSED_PARAMETER css::uno::XComponentContext *,
uno_Sequence * arguments)
{
assert(arguments != 0 );
assert(arguments != 0); (void) arguments;
rtl::Reference<ODocumentCloser> x(new ODocumentCloser);
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
x->initialize(aArgs);
x->acquire();
return static_cast<cppu::OWeakObject *>(x.get());
}
......
......@@ -20,7 +20,6 @@
#include "sal/types.h"
#include "rtl/ustring.hxx"
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/lang/XMultiComponentFactory.hpp>
#include "svtools/miscopt.hxx"
......@@ -58,7 +57,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
com_sun_star_comp_svt_FilePicker_get_implementation(
css::uno::XComponentContext *context, uno_Sequence * arguments)
{
assert(arguments != 0);
assert(arguments != 0); (void) arguments;
Reference< css::uno::XInterface > xResult;
Reference< css::lang::XMultiComponentFactory > xFactory (context->getServiceManager());
if (xFactory.is() && SvtMiscOptions().UseSystemFileDialog())
......@@ -93,14 +92,6 @@ com_sun_star_comp_svt_FilePicker_get_implementation(
// Add to FilePicker history.
svt::addFilePicker (xResult);
}
css::uno::Reference< css::lang::XInitialization > xx(xResult, css::uno::UNO_QUERY);
if (xx.is() && arguments->nElements)
{
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
xx->initialize(aArgs);
}
xResult->acquire();
return xResult.get();
}
......
......@@ -493,18 +493,10 @@ com_sun_star_drawing_EnhancedCustomShapeEngine_implementation_getFactory(
SAL_UNUSED_PARAMETER css::uno::XComponentContext *,
uno_Sequence * arguments)
{
assert(arguments != 0);
assert(arguments != 0); (void) arguments;
css::uno::Reference<css::uno::XInterface> x(
static_cast<cppu::OWeakObject *>(new EnhancedCustomShapeEngine));
x->acquire();
css::uno::Reference< css::lang::XInitialization > xx(x, css::uno::UNO_QUERY);
if (xx.is())
{
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
xx->initialize(aArgs);
}
return x.get();
}
......
......@@ -443,18 +443,10 @@ com_sun_star_svx_FontHeightToolBoxController_implementation_getFactory(
css::uno::XComponentContext *rxContext,
uno_Sequence * arguments)
{
assert(arguments != 0);
assert(arguments != 0); (void) arguments;
css::uno::Reference<css::uno::XInterface> x(
static_cast<cppu::OWeakObject *>(new FontHeightToolBoxControl(rxContext)));
x->acquire();
css::uno::Reference< css::lang::XInitialization > xx(x, css::uno::UNO_QUERY);
if (xx.is())
{
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
xx->initialize(aArgs);
}
return x.get();
}
......
......@@ -1053,18 +1053,10 @@ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
com_sun_star_svx_FindTextToolboxController_implementation_getFactory(
css::uno::XComponentContext *context, uno_Sequence * arguments)
{
assert(arguments != 0);
assert(arguments != 0); (void) arguments;
css::uno::Reference<css::uno::XInterface> x(
static_cast<cppu::OWeakObject *>(new FindTextToolbarController(context)));
x->acquire();
css::uno::Reference< css::lang::XInitialization > xx(x, css::uno::UNO_QUERY);
if (xx.is())
{
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
xx->initialize(aArgs);
}
return x.get();
}
......@@ -1072,18 +1064,10 @@ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
com_sun_star_svx_ExitFindbarToolboxController_implementation_getFactory(
css::uno::XComponentContext *context, uno_Sequence * arguments)
{
assert(arguments != 0);
assert(arguments != 0); (void) arguments;
css::uno::Reference<css::uno::XInterface> x(
static_cast<cppu::OWeakObject *>(new ExitSearchToolboxController(context)));
x->acquire();
css::uno::Reference< css::lang::XInitialization > xx(x, css::uno::UNO_QUERY);
if (xx.is())
{
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
xx->initialize(aArgs);
}
return x.get();
}
......@@ -1091,19 +1075,11 @@ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
com_sun_star_svx_UpSearchToolboxController_implementation_getFactory(
css::uno::XComponentContext *context, uno_Sequence * arguments)
{
assert(arguments != 0);
assert(arguments != 0); (void) arguments;
css::uno::Reference<css::uno::XInterface> x(
static_cast<cppu::OWeakObject *>(new UpDownSearchToolboxController(
context, UpDownSearchToolboxController::UP )));
x->acquire();
css::uno::Reference< css::lang::XInitialization > xx(x, css::uno::UNO_QUERY);
if (xx.is())
{
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
xx->initialize(aArgs);
}
return x.get();
}
......@@ -1111,19 +1087,11 @@ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
com_sun_star_svx_DownSearchToolboxController_implementation_getFactory(
css::uno::XComponentContext *context, uno_Sequence * arguments)
{
assert(arguments != 0);
assert(arguments != 0); (void) arguments;
css::uno::Reference<css::uno::XInterface> x(
static_cast<cppu::OWeakObject *>(new UpDownSearchToolboxController(
context, UpDownSearchToolboxController::DOWN )));
x->acquire();
css::uno::Reference< css::lang::XInitialization > xx(x, css::uno::UNO_QUERY);
if (xx.is())
{
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
xx->initialize(aArgs);
}
return x.get();
}
......@@ -1131,18 +1099,10 @@ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
com_sun_star_svx_MatchCaseToolboxController_implementation_getFactory(
css::uno::XComponentContext *context, uno_Sequence * arguments)
{
assert(arguments != 0);
assert(arguments != 0); (void) arguments;
css::uno::Reference<css::uno::XInterface> x(
static_cast<cppu::OWeakObject *>(new MatchCaseToolboxController(context)));
x->acquire();
css::uno::Reference< css::lang::XInitialization > xx(x, css::uno::UNO_QUERY);
if (xx.is())
{
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
xx->initialize(aArgs);
}
return x.get();
}
......@@ -1150,18 +1110,10 @@ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
com_sun_star_svx_FindAllToolboxController_implementation_getFactory(
css::uno::XComponentContext *context, uno_Sequence * arguments)
{
assert(arguments != 0);
assert(arguments != 0); (void) arguments;
css::uno::Reference<css::uno::XInterface> x(
static_cast<cppu::OWeakObject *>(new FindAllToolboxController(context)));
x->acquire();
css::uno::Reference< css::lang::XInitialization > xx(x, css::uno::UNO_QUERY);
if (xx.is())
{
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
xx->initialize(aArgs);
}
return x.get();
}
......@@ -1170,18 +1122,10 @@ com_sun_star_comp_svx_Impl_FindbarDispatcher_implementation_getFactory(
SAL_UNUSED_PARAMETER css::uno::XComponentContext *,
uno_Sequence * arguments)
{
assert(arguments != 0);
assert(arguments != 0); (void) arguments;
css::uno::Reference<css::uno::XInterface> x(
static_cast<cppu::OWeakObject *>(new FindbarDispatcher));
x->acquire();
css::uno::Reference< css::lang::XInitialization > xx(x, css::uno::UNO_QUERY);
if (xx.is())
{
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
xx->initialize(aArgs);
}
return x.get();
}
......
......@@ -253,18 +253,10 @@ com_sun_star_comp_gallery_GalleryThemeProvider_implementation_getFactory(
SAL_UNUSED_PARAMETER css::uno::XComponentContext *,
uno_Sequence * arguments)
{
assert(arguments != 0);
assert(arguments != 0); (void) arguments;
css::uno::Reference<css::uno::XInterface> x(
static_cast<cppu::OWeakObject *>(new GalleryThemeProvider));
x->acquire();
css::uno::Reference< css::lang::XInitialization > xx(x, css::uno::UNO_QUERY);
if (xx.is())
{
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
xx->initialize(aArgs);
}
return x.get();
}
......
......@@ -1055,19 +1055,11 @@ com_sun_star_comp_Svx_GraphicImportHelper_implementation_getFactory(
SAL_UNUSED_PARAMETER css::uno::XComponentContext *,
uno_Sequence * arguments)
{
assert(arguments != 0);
assert(arguments != 0); (void) arguments;
css::uno::Reference<css::uno::XInterface> x(
static_cast<cppu::OWeakObject *>(new SvXMLGraphicImportExportHelper(
GRAPHICHELPER_MODE_READ)));
x->acquire();
css::uno::Reference< css::lang::XInitialization > xx(x, css::uno::UNO_QUERY);
if (xx.is())
{
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
xx->initialize(aArgs);
}
return x.get();
}
......@@ -1088,19 +1080,11 @@ com_sun_star_comp_Svx_GraphicExportHelper_implementation_getFactory(
SAL_UNUSED_PARAMETER css::uno::XComponentContext *,
uno_Sequence * arguments)
{
assert(arguments != 0);
assert(arguments != 0); (void) arguments;
css::uno::Reference<css::uno::XInterface> x(
static_cast<cppu::OWeakObject *>(new SvXMLGraphicImportExportHelper(
GRAPHICHELPER_MODE_WRITE )));
x->acquire();
css::uno::Reference< css::lang::XInitialization > xx(x, css::uno::UNO_QUERY);
if (xx.is())
{
css::uno::Sequence<css::uno::Any> aArgs(
reinterpret_cast<css::uno::Any *>(arguments->elements),
arguments->nElements);
xx->initialize(aArgs);
}
return x.get();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment