fix SAL_WARN when instantiating Thesaurus
Before commit 3fbadfa1ad41a3477804c592e06caec708c05218 lingucomponent: create instances with uno constructors Thesaurus was constructed but Thesaurus::initialize was NOT being called from GetAvailLocales. However, we have some code marked "HACK" in cppuhelper/source/servicemanager.cxx i.e. ServiceManager....::createInstanceWithArguments which DOES call initialize. And we have code in GetAvailLocales which passes what Thesuarus considers an invalid number of arguments, because all the other similar services DO take 2 args (even though they don't use the second arg!) So we have a bunch of temporary hack and backwards compat stuff interacting, causing a SAL_WARN. So make Thesauras::initialize a little more tolerant, which means we're now initialising it, which is a change in behaviour, so if this commit comes up a regression, we will need find another warn to stop the warning. Change-Id: I60e0ed1bd2d4fbccbc539b5536aba055a7dfc6c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99039 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
parent
565912fa03
commit
fed3920616
@ -466,10 +466,13 @@ void SAL_CALL Thesaurus::initialize( const Sequence< Any >& rArguments )
|
||||
return;
|
||||
|
||||
sal_Int32 nLen = rArguments.getLength();
|
||||
if (1 == nLen)
|
||||
// Accept one of two args so we can be compatible with the call site in GetAvailLocales()
|
||||
// linguistic module
|
||||
if (1 == nLen || 2 == nLen)
|
||||
{
|
||||
Reference< XLinguProperties > xPropSet;
|
||||
rArguments.getConstArray()[0] >>= xPropSet;
|
||||
assert(xPropSet);
|
||||
|
||||
//! Pointer allows for access of the non-UNO functions.
|
||||
//! And the reference to the UNO-functions while increasing
|
||||
|
@ -73,8 +73,7 @@ static uno::Sequence< lang::Locale > GetAvailLocales(
|
||||
{
|
||||
std::set< LanguageType > aLanguages;
|
||||
|
||||
//! since we're going to create one-instance services we have to
|
||||
//! supply their arguments even if we would not need them here...
|
||||
// All of these services only use one arg, but need two args for compat reasons
|
||||
uno::Sequence< uno::Any > aArgs(2);
|
||||
aArgs.getArray()[0] <<= GetLinguProperties();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user