It had been using cppu::OComponentHelper (which derives from XAggregation) ever
since b525a3115f "initial import", bug e.g.
ORegistryFactoryHelper deriving from it implements queryInterface in a way that
is incompatible with XAggregation (it should only have forwarded to
OFactoryComponentHelper::queryInterface, and rather implemented its logic in an
ORegistryFactoryHelper::queryAggregation override).
Also, without this commit but instead with a local
> diff --git a/cppuhelper/source/factory.cxx b/cppuhelper/source/factory.cxx
> index c8efcab0e604..9011264b3f3a 100644
> --- a/cppuhelper/source/factory.cxx
> +++ b/cppuhelper/source/factory.cxx
> @@ -241,6 +241,7 @@ class OFactoryComponentHelper
> , public OComponentHelper
> , public OSingleFactoryHelper
> {
> + void SAL_CALL setDelegator(css::uno::Reference<css::uno::XInterface> const &) final { assert(false); }
> public:
> OFactoryComponentHelper(
> const Reference<XMultiServiceFactory > & rServiceManager,
`make check` still succeeded for me on Linux, without hitting that injected
assert that should have fired if that XAggregation mechanism had been used after
all.
So switch from OComponentHelper to WeakComponentImplHelper here (which is the
simplest implementation helper to use, even if it still needs the non-standard
OFactoryComponentHelper::getTypes overriding the non-fitting
WeakComponentImplHelper default implementation).
Change-Id: I9fc2f4f2ef36bd016f9a943a8efd5e4ac5f3baaf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145428
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>