[Libreoffice-commits] core.git: 2 commits - sc/inc sc/qa sc/source
Noel Grandin (via logerrit)
logerrit at kemper.freedesktop.org
Fri Sep 17 13:03:30 UTC 2021
sc/inc/global.hxx | 12 ++++++++----
sc/qa/unit/ucalc.cxx | 3 +--
sc/source/core/data/autonamecache.cxx | 2 +-
sc/source/core/data/conditio.cxx | 10 +++++-----
sc/source/core/data/dociter.cxx | 14 ++++++--------
sc/source/core/data/document.cxx | 2 +-
sc/source/core/data/dpcache.cxx | 14 ++++++--------
sc/source/core/data/dpitemdata.cxx | 4 ++--
sc/source/core/data/dpobject.cxx | 12 ++++++------
sc/source/core/data/funcdesc.cxx | 2 +-
sc/source/core/data/global.cxx | 24 ++++++++++++++++--------
sc/source/core/data/table3.cxx | 11 +++++------
sc/source/core/tool/autoform.cxx | 8 ++++----
sc/source/core/tool/compare.cxx | 17 ++++++++---------
sc/source/core/tool/compiler.cxx | 6 +++---
sc/source/core/tool/dbdata.cxx | 4 ++--
sc/source/core/tool/doubleref.cxx | 2 +-
sc/source/core/tool/interpr1.cxx | 8 ++++----
sc/source/core/tool/rangelst.cxx | 4 ++--
sc/source/core/tool/rangenam.cxx | 2 +-
sc/source/core/tool/typedstrdata.cxx | 8 ++++----
sc/source/core/tool/userlist.cxx | 4 ++--
sc/source/filter/excel/xelink.cxx | 2 +-
sc/source/ui/app/inputhdl.cxx | 10 +++++-----
sc/source/ui/dbgui/scuiasciiopt.cxx | 2 +-
sc/source/ui/docshell/externalrefmgr.cxx | 12 ++++++------
sc/source/ui/docshell/tablink.cxx | 2 +-
sc/source/ui/miscdlgs/acredlin.cxx | 2 +-
sc/source/ui/miscdlgs/solveroptions.cxx | 2 +-
sc/source/ui/view/dbfunc3.cxx | 2 +-
30 files changed, 106 insertions(+), 101 deletions(-)
New commits:
commit f9e09ba0513bbd0eaf872a60e6824a5b20229dfa
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Fri Sep 17 11:24:25 2021 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Fri Sep 17 15:03:09 2021 +0200
rather return ref from GetTransliteration
since we never return a nullptr.
Also add a new utility method to simplify the call sites that need to
pick the right collator
Change-Id: I0ecf3ad32a0bf22d9e760620524f41bc18b54fff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122238
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx
index a8b939114201..5ebd8263eabb 100644
--- a/sc/inc/global.hxx
+++ b/sc/inc/global.hxx
@@ -546,8 +546,9 @@ public:
static CollatorWrapper& GetCollator(bool bCaseSensitive);
static css::lang::Locale* GetLocale();
- SC_DLLPUBLIC static ::utl::TransliterationWrapper* GetpTransliteration();
- static ::utl::TransliterationWrapper* GetCaseTransliteration();
+ SC_DLLPUBLIC static ::utl::TransliterationWrapper& GetTransliteration();
+ static ::utl::TransliterationWrapper& GetCaseTransliteration();
+ static ::utl::TransliterationWrapper& GetTransliteration(bool bCaseSensitive);
SC_DLLPUBLIC static LanguageType eLnge;
static constexpr sal_Unicode cListDelimiter = ',';
diff --git a/sc/source/core/data/autonamecache.cxx b/sc/source/core/data/autonamecache.cxx
index a2be03c25796..f74219baf706 100644
--- a/sc/source/core/data/autonamecache.cxx
+++ b/sc/source/core/data/autonamecache.cxx
@@ -77,7 +77,7 @@ const ScAutoNameAddresses& ScAutoNameCache::GetNameOccurrences( const OUString&
; // nothing, prevent compiler warning
break;
}
- if ( ScGlobal::GetpTransliteration()->isEqual( aStr, rName ) )
+ if ( ScGlobal::GetTransliteration().isEqual( aStr, rName ) )
{
rAddresses.push_back(aIter.GetPos());
}
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 3f5d4aefdbb6..10bf90b7d275 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -866,7 +866,7 @@ bool ScDocument::RenameTab( SCTAB nTab, const OUString& rName, bool bExternalDoc
if (maTabs[i] && (i != nTab))
{
OUString aOldName = maTabs[i]->GetName();
- bValid = !ScGlobal::GetpTransliteration()->isEqual( rName, aOldName );
+ bValid = !ScGlobal::GetTransliteration().isEqual( rName, aOldName );
}
if (bValid)
{
diff --git a/sc/source/core/data/dpcache.cxx b/sc/source/core/data/dpcache.cxx
index 2867c6616fa5..d544fb884d9c 100644
--- a/sc/source/core/data/dpcache.cxx
+++ b/sc/source/core/data/dpcache.cxx
@@ -695,8 +695,7 @@ bool ScDPCache::ValidQuery( SCROW nRow, const ScQueryParam &rParam) const
tools::Long nPos = -1;
CollatorWrapper& rCollator = ScGlobal::GetCollator(rParam.bCaseSens);
- ::utl::TransliterationWrapper* pTransliteration = (rParam.bCaseSens ?
- ScGlobal::GetCaseTransliteration() : ScGlobal::GetpTransliteration());
+ ::utl::TransliterationWrapper& rTransliteration = ScGlobal::GetTransliteration(rParam.bCaseSens);
for (size_t i = 0; i < nEntryCount && rParam.GetEntry(i).bDoQuery; ++i)
{
@@ -785,7 +784,7 @@ bool ScDPCache::ValidQuery( SCROW nRow, const ScQueryParam &rParam) const
{
// TODO: Use shared string for fast equality check.
OUString aStr = rEntry.GetQueryItem().maString.getString();
- bOk = pTransliteration->isEqual(aCellStr, aStr);
+ bOk = rTransliteration.isEqual(aCellStr, aStr);
bool bHasStar = false;
sal_Int32 nIndex;
if (( nIndex = aStr.indexOf('*') ) != -1)
@@ -811,9 +810,9 @@ bool ScDPCache::ValidQuery( SCROW nRow, const ScQueryParam &rParam) const
OUString aQueryStr = rEntry.GetQueryItem().maString.getString();
css::uno::Sequence< sal_Int32 > xOff;
const LanguageType nLang = ScGlobal::oSysLocale->GetLanguageTag().getLanguageType();
- OUString aCell = pTransliteration->transliterate(
+ OUString aCell = rTransliteration.transliterate(
aCellStr, nLang, 0, aCellStr.getLength(), &xOff);
- OUString aQuer = pTransliteration->transliterate(
+ OUString aQuer = rTransliteration.transliterate(
aQueryStr, nLang, 0, aQueryStr.getLength(), &xOff);
bOk = (aCell.indexOf( aQuer ) != -1);
}
diff --git a/sc/source/core/data/dpitemdata.cxx b/sc/source/core/data/dpitemdata.cxx
index 7247d2165541..e4efe75ee935 100644
--- a/sc/source/core/data/dpitemdata.cxx
+++ b/sc/source/core/data/dpitemdata.cxx
@@ -205,7 +205,7 @@ bool ScDPItemData::IsCaseInsEqual(const ScDPItemData& r) const
// Fast equality check for interned strings.
return true;
- return ScGlobal::GetpTransliteration()->isEqual(GetString(), r.GetString());
+ return ScGlobal::GetTransliteration().isEqual(GetString(), r.GetString());
}
bool ScDPItemData::operator== (const ScDPItemData& r) const
diff --git a/sc/source/core/data/dpobject.cxx b/sc/source/core/data/dpobject.cxx
index bd80ce3b4765..0e4d583b9391 100644
--- a/sc/source/core/data/dpobject.cxx
+++ b/sc/source/core/data/dpobject.cxx
@@ -1670,7 +1670,7 @@ bool isAtStart(
{
OUString aDequoted;
bool bParsed = extractAtStart( rList, rMatched, bAllowBracket, pFunc, aDequoted);
- if ( bParsed && ScGlobal::GetpTransliteration()->isEqual( aDequoted, rSearch ) )
+ if ( bParsed && ScGlobal::GetTransliteration().isEqual( aDequoted, rSearch ) )
{
nMatchList = rMatched; // match count in the list string, including quotes
nMatchSearch = rSearch.getLength();
@@ -1679,7 +1679,7 @@ bool isAtStart(
else
{
// otherwise look for search string at the start of rList
- ScGlobal::GetpTransliteration()->equals(
+ ScGlobal::GetTransliteration().equals(
rList, 0, rList.getLength(), nMatchList, rSearch, 0, rSearch.getLength(), nMatchSearch);
}
@@ -1904,10 +1904,10 @@ bool ScDPObject::ParseFilters(
if (bHasQuery)
{
// First check given value name against both.
- bThisItemFound = ScGlobal::GetpTransliteration()->isEqual(
+ bThisItemFound = ScGlobal::GetTransliteration().isEqual(
aQueryValueName, pItemNamesArr[nItem]);
if (!bThisItemFound && pItemValuesArr[nItem] != pItemNamesArr[nItem])
- bThisItemFound = ScGlobal::GetpTransliteration()->isEqual(
+ bThisItemFound = ScGlobal::GetTransliteration().isEqual(
aQueryValueName, pItemValuesArr[nItem]);
if (!bThisItemFound && aQueryValueName != aQueryValue)
{
@@ -1915,10 +1915,10 @@ bool ScDPObject::ParseFilters(
// against both.
/* TODO: or check only value string against
* value string, not against the value name? */
- bThisItemFound = ScGlobal::GetpTransliteration()->isEqual(
+ bThisItemFound = ScGlobal::GetTransliteration().isEqual(
aQueryValue, pItemNamesArr[nItem]);
if (!bThisItemFound && pItemValuesArr[nItem] != pItemNamesArr[nItem])
- bThisItemFound = ScGlobal::GetpTransliteration()->isEqual(
+ bThisItemFound = ScGlobal::GetTransliteration().isEqual(
aQueryValue, pItemValuesArr[nItem]);
}
}
diff --git a/sc/source/core/data/global.cxx b/sc/source/core/data/global.cxx
index 6166b3f3ec80..b950cfe3003f 100644
--- a/sc/source/core/data/global.cxx
+++ b/sc/source/core/data/global.cxx
@@ -975,9 +975,9 @@ void ScGlobal::AddLanguage( SfxItemSet& rSet, const SvNumberFormatter& rFormatte
rSet.Put( SvxLanguageItem( pHardFormat->GetLanguage(), ATTR_LANGUAGE_FORMAT ) );
}
-utl::TransliterationWrapper* ScGlobal::GetpTransliteration()
+utl::TransliterationWrapper& ScGlobal::GetTransliteration()
{
- return comphelper::doubleCheckedInit( pTransliteration,
+ return *comphelper::doubleCheckedInit( pTransliteration,
[]()
{
const LanguageType eOfficeLanguage = Application::GetSettings().GetLanguageTag().getLanguageType();
@@ -987,9 +987,9 @@ utl::TransliterationWrapper* ScGlobal::GetpTransliteration()
return p;
});
}
-::utl::TransliterationWrapper* ScGlobal::GetCaseTransliteration()
+::utl::TransliterationWrapper& ScGlobal::GetCaseTransliteration()
{
- return comphelper::doubleCheckedInit( pCaseTransliteration,
+ return *comphelper::doubleCheckedInit( pCaseTransliteration,
[]()
{
const LanguageType eOfficeLanguage = Application::GetSettings().GetLanguageTag().getLanguageType();
@@ -999,6 +999,10 @@ utl::TransliterationWrapper* ScGlobal::GetpTransliteration()
return p;
});
}
+utl::TransliterationWrapper& ScGlobal::GetTransliteration(bool bCaseSensitive)
+{
+ return bCaseSensitive ? GetCaseTransliteration() : GetTransliteration();
+}
const LocaleDataWrapper& ScGlobal::getLocaleData()
{
diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index e90adbeb5c42..7e1f05450c99 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -2386,7 +2386,7 @@ class QueryEvaluator
void setupTransliteratorIfNeeded()
{
if (!mpTransliteration)
- mpTransliteration = mrParam.bCaseSens ? ScGlobal::GetCaseTransliteration() : ScGlobal::GetpTransliteration();
+ mpTransliteration = &ScGlobal::GetTransliteration(mrParam.bCaseSens);
}
void setupCollatorIfNeeded()
diff --git a/sc/source/core/tool/autoform.cxx b/sc/source/core/tool/autoform.cxx
index e4ab89221632..631747e5667c 100644
--- a/sc/source/core/tool/autoform.cxx
+++ b/sc/source/core/tool/autoform.cxx
@@ -744,11 +744,11 @@ ScAutoFormat::ScAutoFormat() :
bool DefaultFirstEntry::operator() (const OUString& left, const OUString& right) const
{
OUString aStrStandard(ScResId(STR_STYLENAME_STANDARD));
- if (ScGlobal::GetpTransliteration()->isEqual( left, right ) )
+ if (ScGlobal::GetTransliteration().isEqual( left, right ) )
return false;
- if ( ScGlobal::GetpTransliteration()->isEqual( left, aStrStandard ) )
+ if ( ScGlobal::GetTransliteration().isEqual( left, aStrStandard ) )
return true;
- if ( ScGlobal::GetpTransliteration()->isEqual( right, aStrStandard ) )
+ if ( ScGlobal::GetTransliteration().isEqual( right, aStrStandard ) )
return false;
return ScGlobal::GetCollator().compareString( left, right) < 0;
}
diff --git a/sc/source/core/tool/compare.cxx b/sc/source/core/tool/compare.cxx
index ac931d2c1982..48bf4642fe05 100644
--- a/sc/source/core/tool/compare.cxx
+++ b/sc/source/core/tool/compare.cxx
@@ -151,9 +151,8 @@ double CompareFunc( const Compare& rComp, CompareOptions* pOptions )
}
else if (rEntry.eOp == SC_EQUAL || rEntry.eOp == SC_NOT_EQUAL)
{
- ::utl::TransliterationWrapper* pTransliteration =
- (rComp.mbIgnoreCase ? ScGlobal::GetpTransliteration() :
- ScGlobal::GetCaseTransliteration());
+ ::utl::TransliterationWrapper& rTransliteration =
+ ScGlobal::GetTransliteration(!rComp.mbIgnoreCase);
bool bMatch = false;
if (pOptions->bMatchWholeCell)
{
@@ -165,10 +164,10 @@ double CompareFunc( const Compare& rComp, CompareOptions* pOptions )
else
{
const LanguageType nLang = ScGlobal::oSysLocale->GetLanguageTag().getLanguageType();
- OUString aCell( pTransliteration->transliterate(
+ OUString aCell( rTransliteration.transliterate(
rCell1.maStr.getString(), nLang, 0,
rCell1.maStr.getLength(), nullptr));
- OUString aQuer( pTransliteration->transliterate(
+ OUString aQuer( rTransliteration.transliterate(
rCell2.maStr.getString(), nLang, 0,
rCell2.maStr.getLength(), nullptr));
bMatch = (aCell.indexOf( aQuer ) != -1);
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index 311993e6ff88..fd9c0ab51fe8 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -3707,7 +3707,7 @@ bool ScCompiler::IsColRowName( const OUString& rName )
if (bOk && aIter.hasString())
{
OUString aStr = aIter.getString();
- if ( ScGlobal::GetpTransliteration()->isEqual( aStr, aName ) )
+ if ( ScGlobal::GetTransliteration().isEqual( aStr, aName ) )
{
aRef.InitFlags();
if ( !jRow )
@@ -3815,7 +3815,7 @@ bool ScCompiler::IsColRowName( const OUString& rName )
if (bOk && aIter.hasString())
{
OUString aStr = aIter.getString();
- if ( ScGlobal::GetpTransliteration()->isEqual( aStr, aName ) )
+ if ( ScGlobal::GetTransliteration().isEqual( aStr, aName ) )
{
SCCOL nCol = aIter.GetPos().Col();
SCROW nRow = aIter.GetPos().Row();
@@ -4065,7 +4065,7 @@ bool ScCompiler::IsTableRefColumn( const OUString& rName ) const
if (bOk && aIter.hasString())
{
OUString aStr = aIter.getString();
- if (ScGlobal::GetpTransliteration()->isEqual( aStr, aName))
+ if (ScGlobal::GetTransliteration().isEqual( aStr, aName))
{
// If this is successful and the internal column name
// lookup was not, it may be worth a warning.
diff --git a/sc/source/core/tool/dbdata.cxx b/sc/source/core/tool/dbdata.cxx
index a5af4404e47d..f95d1e94b681 100644
--- a/sc/source/core/tool/dbdata.cxx
+++ b/sc/source/core/tool/dbdata.cxx
@@ -50,7 +50,7 @@ using ::std::pair;
bool ScDBData::less::operator() (const std::unique_ptr<ScDBData>& left, const std::unique_ptr<ScDBData>& right) const
{
- return ScGlobal::GetpTransliteration()->compareString(left->GetUpperName(), right->GetUpperName()) < 0;
+ return ScGlobal::GetTransliteration().compareString(left->GetUpperName(), right->GetUpperName()) < 0;
}
ScDBData::ScDBData( const OUString& rName,
@@ -767,7 +767,7 @@ public:
bool operator()( const OUString& rName ) const
{
- return ScGlobal::GetpTransliteration()->isEqual( maSearchName, rName);
+ return ScGlobal::GetTransliteration().isEqual( maSearchName, rName);
}
private:
diff --git a/sc/source/core/tool/doubleref.cxx b/sc/source/core/tool/doubleref.cxx
index db5cda5f4fdb..165f9a228cd3 100644
--- a/sc/source/core/tool/doubleref.cxx
+++ b/sc/source/core/tool/doubleref.cxx
@@ -350,7 +350,7 @@ SCCOL ScDBInternalRange::findFieldColumn(const OUString& rStr, FormulaError* pEr
if (pErr)
*pErr = nErr;
lcl_uppercase(aCellStr);
- bFound = ScGlobal::GetpTransliteration()->isEqual(aCellStr, aUpper);
+ bFound = ScGlobal::GetTransliteration().isEqual(aCellStr, aUpper);
if (!bFound)
aLook.IncCol();
}
diff --git a/sc/source/core/tool/userlist.cxx b/sc/source/core/tool/userlist.cxx
index fb9dc97e6236..10a4de328f87 100644
--- a/sc/source/core/tool/userlist.cxx
+++ b/sc/source/core/tool/userlist.cxx
@@ -168,7 +168,7 @@ sal_Int32 ScUserListData::Compare(const OUString& rSubStr1, const OUString& rSub
else if (bFound2)
return 1;
else
- return ScGlobal::GetCaseTransliteration()->compareString( rSubStr1, rSubStr2 );
+ return ScGlobal::GetCaseTransliteration().compareString( rSubStr1, rSubStr2 );
}
sal_Int32 ScUserListData::ICompare(const OUString& rSubStr1, const OUString& rSubStr2) const
@@ -194,7 +194,7 @@ sal_Int32 ScUserListData::ICompare(const OUString& rSubStr1, const OUString& rSu
else if (bFound2)
return 1;
else
- return ScGlobal::GetpTransliteration()->compareString( rSubStr1, rSubStr2 );
+ return ScGlobal::GetTransliteration().compareString( rSubStr1, rSubStr2 );
}
ScUserList::ScUserList()
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index c55c97dac444..9779b6e9692a 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -111,7 +111,7 @@ ScTypedCaseStrSet::const_iterator findText(
const OUString& rStart, OUString& rResult, bool bBack)
{
auto lIsMatch = [&rStart](const ScTypedStrData& rData) {
- return (rData.GetStringType() != ScTypedStrData::Value) && ScGlobal::GetpTransliteration()->isMatch(rStart, rData.GetString()); };
+ return (rData.GetStringType() != ScTypedStrData::Value) && ScGlobal::GetTransliteration().isMatch(rStart, rData.GetString()); };
if (bBack) // Backwards
{
@@ -155,7 +155,7 @@ OUString getExactMatch(const ScTypedCaseStrSet& rDataSet, const OUString& rStrin
auto it = std::find_if(rDataSet.begin(), rDataSet.end(),
[&rString](const ScTypedStrData& rData) {
return (rData.GetStringType() != ScTypedStrData::Value)
- && ScGlobal::GetpTransliteration()->isEqual(rData.GetString(), rString);
+ && ScGlobal::GetTransliteration().isEqual(rData.GetString(), rString);
});
if (it != rDataSet.end())
return it->GetString();
@@ -207,7 +207,7 @@ ScTypedCaseStrSet::const_iterator findTextAll(
// skip values
continue;
- if ( !ScGlobal::GetpTransliteration()->isMatch(rStart, rData.GetString()) )
+ if ( !ScGlobal::GetTransliteration().isMatch(rStart, rData.GetString()) )
// not a match
continue;
@@ -247,7 +247,7 @@ ScTypedCaseStrSet::const_iterator findTextAll(
// skip values
continue;
- if ( !ScGlobal::GetpTransliteration()->isMatch(rStart, rData.GetString()) )
+ if ( !ScGlobal::GetTransliteration().isMatch(rStart, rData.GetString()) )
// not a match
continue;
@@ -1607,7 +1607,7 @@ void completeFunction( EditView* pView, const OUString& rInsert, bool& rParInser
for (sal_Int32 n = aAll.getLength(); n >= nMinLen && aMatch.isEmpty(); --n)
{
const OUString aTest = aAll.copy(aAll.getLength() - n); // n trailing chars
- if (ScGlobal::GetpTransliteration()->isMatch(aTest, rInsert))
+ if (ScGlobal::GetTransliteration().isMatch(aTest, rInsert))
aMatch = aTest; // Found => break the loop
}
diff --git a/sc/source/ui/dbgui/scuiasciiopt.cxx b/sc/source/ui/dbgui/scuiasciiopt.cxx
index 0a951b928c5d..2daa4af97f0c 100644
--- a/sc/source/ui/dbgui/scuiasciiopt.cxx
+++ b/sc/source/ui/dbgui/scuiasciiopt.cxx
@@ -144,7 +144,7 @@ static sal_Unicode lcl_CharFromCombo(const weld::ComboBox& rCombo, const OUStrin
OUString sToken {rList.getToken(0, '\t', nIdx)};
while (nIdx>0)
{
- if ( ScGlobal::GetpTransliteration()->isEqual( aStr, sToken ) )
+ if ( ScGlobal::GetTransliteration().isEqual( aStr, sToken ) )
{
sal_Int32 nTmpIdx {nIdx};
c = static_cast<sal_Unicode>(rList.getToken(0, '\t', nTmpIdx).toInt32());
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index fc955975bc70..cff9b7e758ca 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -962,9 +962,9 @@ void ScExternalRefCache::initializeDoc(sal_uInt16 nFileId, const vector<OUString
// If the one and only table name matches exactly, carry on the base
// file name for further alias use. If instead the table name matches
// the base name, carry on the sheet name as alias.
- if (ScGlobal::GetpTransliteration()->isEqual( pDoc->maTableNames[0].maRealName, aSheetName))
+ if (ScGlobal::GetTransliteration().isEqual( pDoc->maTableNames[0].maRealName, aSheetName))
pDoc->maSingleTableNameAlias = rBaseName;
- else if (ScGlobal::GetpTransliteration()->isEqual( pDoc->maTableNames[0].maRealName, rBaseName))
+ else if (ScGlobal::GetTransliteration().isEqual( pDoc->maTableNames[0].maRealName, rBaseName))
pDoc->maSingleTableNameAlias = aSheetName;
}
@@ -998,12 +998,12 @@ bool ScExternalRefCache::DocItem::getSingleTableNameAlternative( OUString& rTabN
{
if (maSingleTableNameAlias.isEmpty() || maTableNames.size() != 1)
return false;
- if (ScGlobal::GetpTransliteration()->isEqual( rTabName, maTableNames[0].maRealName))
+ if (ScGlobal::GetTransliteration().isEqual( rTabName, maTableNames[0].maRealName))
{
rTabName = maSingleTableNameAlias;
return true;
}
- if (ScGlobal::GetpTransliteration()->isEqual( rTabName, maSingleTableNameAlias))
+ if (ScGlobal::GetTransliteration().isEqual( rTabName, maSingleTableNameAlias))
{
rTabName = maTableNames[0].maRealName;
return true;
@@ -1338,9 +1338,9 @@ ScExternalRefCache::TableTypeRef ScExternalRefCache::getCacheTable(sal_uInt16 nF
{
const OUString aBaseName( INetURLObject( *pExtUrl).GetBase());
const OUString aSheetName( getFirstSheetName());
- if (ScGlobal::GetpTransliteration()->isEqual( rTabName, aSheetName))
+ if (ScGlobal::GetTransliteration().isEqual( rTabName, aSheetName))
pDoc->maSingleTableNameAlias = aBaseName;
- else if (ScGlobal::GetpTransliteration()->isEqual( rTabName, aBaseName))
+ else if (ScGlobal::GetTransliteration().isEqual( rTabName, aBaseName))
pDoc->maSingleTableNameAlias = aSheetName;
}
}
diff --git a/sc/source/ui/docshell/tablink.cxx b/sc/source/ui/docshell/tablink.cxx
index ca0fdb98c591..f9d2c3207e39 100644
--- a/sc/source/ui/docshell/tablink.cxx
+++ b/sc/source/ui/docshell/tablink.cxx
@@ -254,7 +254,7 @@ bool ScTableLink::Refresh(const OUString& rNewFile, const OUString& rNewFilter,
{
OUString aName;
rDoc.GetName( nTab, aName );
- if ( ScGlobal::GetpTransliteration()->isEqual(
+ if ( ScGlobal::GetTransliteration().isEqual(
ScGlobal::GetDocTabName( aFileName, aTabName ), aName ) )
{
rDoc.RenameTab( nTab,
commit ce707fc2d3420be9423bb5e8d0300dbb71a5db6e
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Fri Sep 17 10:59:51 2021 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Fri Sep 17 15:02:55 2021 +0200
rather return ref from GetCollator
since we never return a nullptr.
Also add a new utility method to simplify the call sites that need to
pick the right collator
Change-Id: I5deb009cb5144fd182bbc6470ae30ea05e6979c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122237
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx
index 6a3eab0d837d..a8b939114201 100644
--- a/sc/inc/global.hxx
+++ b/sc/inc/global.hxx
@@ -539,8 +539,11 @@ public:
SC_DLLPUBLIC static const CharClass& getCharClass();
static CalendarWrapper& GetCalendar();
- SC_DLLPUBLIC static CollatorWrapper* GetCollator();
- static CollatorWrapper* GetCaseCollator();
+ /// case-insensitive collator
+ SC_DLLPUBLIC static CollatorWrapper& GetCollator();
+ /// case-sensitive collator
+ static CollatorWrapper& GetCaseCollator();
+ static CollatorWrapper& GetCollator(bool bCaseSensitive);
static css::lang::Locale* GetLocale();
SC_DLLPUBLIC static ::utl::TransliterationWrapper* GetpTransliteration();
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index 2655ee68428c..87c5d297002a 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -383,8 +383,7 @@ void Test::tearDown()
void Test::testCollator()
{
- CollatorWrapper* p = ScGlobal::GetCollator();
- sal_Int32 nRes = p->compareString("A", "B");
+ sal_Int32 nRes = ScGlobal::GetCollator().compareString("A", "B");
CPPUNIT_ASSERT_MESSAGE("these strings are supposed to be different!", nRes != 0);
}
diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx
index 0bede8f8b336..008592410a75 100644
--- a/sc/source/core/data/conditio.cxx
+++ b/sc/source/core/data/conditio.cxx
@@ -1138,7 +1138,7 @@ bool ScConditionEntry::IsValidStr( const OUString& rArg, const ScAddress& rPos )
OUString aUpVal2( aStrVal2 );
if ( eOp == ScConditionMode::Between || eOp == ScConditionMode::NotBetween )
- if (ScGlobal::GetCollator()->compareString( aUpVal1, aUpVal2 ) > 0)
+ if (ScGlobal::GetCollator().compareString( aUpVal1, aUpVal2 ) > 0)
{
// Right order for value range
OUString aTemp( aUpVal1 ); aUpVal1 = aUpVal2; aUpVal2 = aTemp;
@@ -1147,11 +1147,11 @@ bool ScConditionEntry::IsValidStr( const OUString& rArg, const ScAddress& rPos )
switch ( eOp )
{
case ScConditionMode::Equal:
- bValid = (ScGlobal::GetCollator()->compareString(
+ bValid = (ScGlobal::GetCollator().compareString(
rArg, aUpVal1 ) == 0);
break;
case ScConditionMode::NotEqual:
- bValid = (ScGlobal::GetCollator()->compareString(
+ bValid = (ScGlobal::GetCollator().compareString(
rArg, aUpVal1 ) != 0);
break;
case ScConditionMode::TopPercent:
@@ -1181,7 +1181,7 @@ bool ScConditionEntry::IsValidStr( const OUString& rArg, const ScAddress& rPos )
break;
default:
{
- sal_Int32 nCompare = ScGlobal::GetCollator()->compareString(
+ sal_Int32 nCompare = ScGlobal::GetCollator().compareString(
rArg, aUpVal1 );
switch ( eOp )
{
@@ -1201,7 +1201,7 @@ bool ScConditionEntry::IsValidStr( const OUString& rArg, const ScAddress& rPos )
case ScConditionMode::NotBetween:
// Test for NOTBETWEEN:
bValid = ( nCompare < 0 ||
- ScGlobal::GetCollator()->compareString( rArg,
+ ScGlobal::GetCollator().compareString( rArg,
aUpVal2 ) > 0 );
if ( eOp == ScConditionMode::Between )
bValid = !bValid;
diff --git a/sc/source/core/data/dociter.cxx b/sc/source/core/data/dociter.cxx
index 1a0f8b645382..9c6d7773ba6f 100644
--- a/sc/source/core/data/dociter.cxx
+++ b/sc/source/core/data/dociter.cxx
@@ -620,8 +620,7 @@ bool ScDBQueryDataIterator::DataAccessMatrix::isValidQuery(SCROW nRow, const ScM
vector<bool> aResults;
aResults.reserve(nEntryCount);
- const CollatorWrapper& rCollator =
- mpParam->bCaseSens ? *ScGlobal::GetCaseCollator() : *ScGlobal::GetCollator();
+ const CollatorWrapper& rCollator = ScGlobal::GetCollator(mpParam->bCaseSens);
for (SCSIZE i = 0; i < nEntryCount; ++i)
{
@@ -1809,8 +1808,7 @@ bool ScQueryCellIterator::BinarySearch()
if (pCol->IsEmptyData())
return false;
- CollatorWrapper* pCollator = (maParam.bCaseSens ? ScGlobal::GetCaseCollator() :
- ScGlobal::GetCollator());
+ CollatorWrapper& rCollator = ScGlobal::GetCollator(maParam.bCaseSens);
SvNumberFormatter& rFormatter = *(mrContext.GetFormatTable());
const ScQueryEntry& rEntry = maParam.GetEntry(0);
const ScQueryEntry::Item& rItem = rEntry.GetQueryItem();
@@ -1834,7 +1832,7 @@ bool ScQueryCellIterator::BinarySearch()
sal_uInt32 nFormat = pCol->GetNumberFormat(mrContext, nRow);
OUString aCellStr;
ScCellFormat::GetInputString(aCell, nFormat, aCellStr, rFormatter, rDoc);
- sal_Int32 nTmp = pCollator->compareString(aCellStr, rEntry.GetQueryItem().maString.getString());
+ sal_Int32 nTmp = rCollator.compareString(aCellStr, rEntry.GetQueryItem().maString.getString());
if ((rEntry.eOp == SC_LESS_EQUAL && nTmp > 0) ||
(rEntry.eOp == SC_GREATER_EQUAL && nTmp < 0) ||
(rEntry.eOp == SC_EQUAL && nTmp != 0))
@@ -1959,10 +1957,10 @@ bool ScQueryCellIterator::BinarySearch()
sal_uInt32 nFormat = pCol->GetNumberFormat(mrContext, aCellData.second);
ScCellFormat::GetInputString(aCell, nFormat, aCellStr, rFormatter, rDoc);
- nRes = pCollator->compareString(aCellStr, rEntry.GetQueryItem().maString.getString());
+ nRes = rCollator.compareString(aCellStr, rEntry.GetQueryItem().maString.getString());
if (nRes < 0 && bLessEqual)
{
- sal_Int32 nTmp = pCollator->compareString( aLastInRangeString,
+ sal_Int32 nTmp = rCollator.compareString( aLastInRangeString,
aCellStr);
if (nTmp < 0)
{
@@ -1978,7 +1976,7 @@ bool ScQueryCellIterator::BinarySearch()
}
else if (nRes > 0 && !bLessEqual)
{
- sal_Int32 nTmp = pCollator->compareString( aLastInRangeString,
+ sal_Int32 nTmp = rCollator.compareString( aLastInRangeString,
aCellStr);
if (nTmp > 0)
{
diff --git a/sc/source/core/data/dpcache.cxx b/sc/source/core/data/dpcache.cxx
index 7054fef3ba14..2867c6616fa5 100644
--- a/sc/source/core/data/dpcache.cxx
+++ b/sc/source/core/data/dpcache.cxx
@@ -694,8 +694,7 @@ bool ScDPCache::ValidQuery( SCROW nRow, const ScQueryParam &rParam) const
std::vector<bool> aPassed(nEntryCount, false);
tools::Long nPos = -1;
- CollatorWrapper* pCollator = (rParam.bCaseSens ? ScGlobal::GetCaseCollator() :
- ScGlobal::GetCollator() );
+ CollatorWrapper& rCollator = ScGlobal::GetCollator(rParam.bCaseSens);
::utl::TransliterationWrapper* pTransliteration = (rParam.bCaseSens ?
ScGlobal::GetCaseTransliteration() : ScGlobal::GetpTransliteration());
@@ -823,7 +822,7 @@ bool ScDPCache::ValidQuery( SCROW nRow, const ScQueryParam &rParam) const
}
else
{ // use collator here because data was probably sorted
- sal_Int32 nCompare = pCollator->compareString(
+ sal_Int32 nCompare = rCollator.compareString(
aCellStr, rEntry.GetQueryItem().maString.getString());
switch (rEntry.eOp)
{
diff --git a/sc/source/core/data/dpitemdata.cxx b/sc/source/core/data/dpitemdata.cxx
index da3293d7c2be..7247d2165541 100644
--- a/sc/source/core/data/dpitemdata.cxx
+++ b/sc/source/core/data/dpitemdata.cxx
@@ -64,7 +64,7 @@ sal_Int32 ScDPItemData::Compare(const ScDPItemData& rA, const ScDPItemData& rB)
// strings may be interned.
return 0;
- return ScGlobal::GetCollator()->compareString(rA.GetString(), rB.GetString());
+ return ScGlobal::GetCollator().compareString(rA.GetString(), rB.GetString());
default:
;
}
diff --git a/sc/source/core/data/funcdesc.cxx b/sc/source/core/data/funcdesc.cxx
index 741b785e0869..51f03a4e4bf4 100644
--- a/sc/source/core/data/funcdesc.cxx
+++ b/sc/source/core/data/funcdesc.cxx
@@ -392,7 +392,7 @@ bool ScFuncDesc::isParameterOptional(sal_uInt32 _nPos) const
bool ScFuncDesc::compareByName(const ScFuncDesc* a, const ScFuncDesc* b)
{
- return (ScGlobal::GetCaseCollator()->compareString(*a->mxFuncName, *b->mxFuncName ) < 0);
+ return (ScGlobal::GetCaseCollator().compareString(*a->mxFuncName, *b->mxFuncName ) < 0);
}
#define ENTRY(CODE) CODE, SAL_N_ELEMENTS(CODE)
diff --git a/sc/source/core/data/global.cxx b/sc/source/core/data/global.cxx
index be6711849c02..6166b3f3ec80 100644
--- a/sc/source/core/data/global.cxx
+++ b/sc/source/core/data/global.cxx
@@ -1040,9 +1040,9 @@ struct GetMutex {
}
-CollatorWrapper* ScGlobal::GetCollator()
+CollatorWrapper& ScGlobal::GetCollator()
{
- return comphelper::doubleCheckedInit( pCollator,
+ return *comphelper::doubleCheckedInit( pCollator,
[]()
{
CollatorWrapper* p = new CollatorWrapper( ::comphelper::getProcessComponentContext() );
@@ -1051,9 +1051,9 @@ CollatorWrapper* ScGlobal::GetCollator()
},
GetMutex());
}
-CollatorWrapper* ScGlobal::GetCaseCollator()
+CollatorWrapper& ScGlobal::GetCaseCollator()
{
- return comphelper::doubleCheckedInit( pCaseCollator,
+ return *comphelper::doubleCheckedInit( pCaseCollator,
[]()
{
CollatorWrapper* p = new CollatorWrapper( ::comphelper::getProcessComponentContext() );
@@ -1062,6 +1062,10 @@ CollatorWrapper* ScGlobal::GetCaseCollator()
},
GetMutex());
}
+CollatorWrapper& ScGlobal::GetCollator(bool bCaseSensitive)
+{
+ return bCaseSensitive ? GetCaseCollator() : GetCollator();
+}
css::lang::Locale* ScGlobal::GetLocale()
{
return comphelper::doubleCheckedInit( pLocale,
diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index 852e4a36f2f0..e90adbeb5c42 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -626,8 +626,8 @@ struct PatternSpan
bool ScTable::IsSortCollatorGlobal() const
{
- return pSortCollator == ScGlobal::GetCollator() ||
- pSortCollator == ScGlobal::GetCaseCollator();
+ return pSortCollator == &ScGlobal::GetCollator() ||
+ pSortCollator == &ScGlobal::GetCaseCollator();
}
void ScTable::InitSortCollator( const ScSortParam& rPar )
@@ -642,8 +642,7 @@ void ScTable::InitSortCollator( const ScSortParam& rPar )
else
{ // SYSTEM
DestroySortCollator();
- pSortCollator = (rPar.bCaseSens ? ScGlobal::GetCaseCollator() :
- ScGlobal::GetCollator());
+ pSortCollator = &ScGlobal::GetCollator(rPar.bCaseSens);
}
}
@@ -2393,7 +2392,7 @@ class QueryEvaluator
void setupCollatorIfNeeded()
{
if (!mpCollator)
- mpCollator = mrParam.bCaseSens ? ScGlobal::GetCaseCollator() : ScGlobal::GetCollator();
+ mpCollator = &ScGlobal::GetCollator(mrParam.bCaseSens);
}
public:
diff --git a/sc/source/core/tool/autoform.cxx b/sc/source/core/tool/autoform.cxx
index 20c18d1b3f93..e4ab89221632 100644
--- a/sc/source/core/tool/autoform.cxx
+++ b/sc/source/core/tool/autoform.cxx
@@ -750,7 +750,7 @@ bool DefaultFirstEntry::operator() (const OUString& left, const OUString& right)
return true;
if ( ScGlobal::GetpTransliteration()->isEqual( right, aStrStandard ) )
return false;
- return ScGlobal::GetCollator()->compareString( left, right) < 0;
+ return ScGlobal::GetCollator().compareString( left, right) < 0;
}
void ScAutoFormat::SetSaveLater( bool bSet )
diff --git a/sc/source/core/tool/compare.cxx b/sc/source/core/tool/compare.cxx
index 51491abcfd7f..ac931d2c1982 100644
--- a/sc/source/core/tool/compare.cxx
+++ b/sc/source/core/tool/compare.cxx
@@ -176,10 +176,10 @@ double CompareFunc( const Compare& rComp, CompareOptions* pOptions )
fRes = (bMatch ? 0 : 1);
}
else if (rComp.mbIgnoreCase)
- fRes = static_cast<double>(ScGlobal::GetCollator()->compareString(
+ fRes = static_cast<double>(ScGlobal::GetCollator().compareString(
rCell1.maStr.getString(), rCell2.maStr.getString()));
else
- fRes = static_cast<double>(ScGlobal::GetCaseCollator()->compareString(
+ fRes = static_cast<double>(ScGlobal::GetCaseCollator().compareString(
rCell1.maStr.getString(), rCell2.maStr.getString()));
}
else if (rComp.meOp == SC_EQUAL || rComp.meOp == SC_NOT_EQUAL)
@@ -190,10 +190,10 @@ double CompareFunc( const Compare& rComp, CompareOptions* pOptions )
fRes = (rCell1.maStr.getData() == rCell2.maStr.getData()) ? 0 : 1;
}
else if (rComp.mbIgnoreCase)
- fRes = static_cast<double>(ScGlobal::GetCollator()->compareString(
+ fRes = static_cast<double>(ScGlobal::GetCollator().compareString(
rCell1.maStr.getString(), rCell2.maStr.getString()));
else
- fRes = static_cast<double>(ScGlobal::GetCaseCollator()->compareString(
+ fRes = static_cast<double>(ScGlobal::GetCaseCollator().compareString(
rCell1.maStr.getString(), rCell2.maStr.getString()));
}
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 8d2d81fe850a..5923116be0d2 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -4722,7 +4722,7 @@ sal_Int32 lcl_CompareMatrix2Query(
OUString aStr1 = rMat.GetString(i);
OUString aStr2 = rEntry.GetQueryItem().maString.getString();
- return ScGlobal::GetCollator()->compareString(aStr1, aStr2); // case-insensitive
+ return ScGlobal::GetCollator().compareString(aStr1, aStr2); // case-insensitive
}
/** returns the last item with the identical value as the original item
@@ -6720,7 +6720,7 @@ void ScInterpreter::ScLookup()
if (rItem.meType != ScQueryEntry::ByString)
bFound = false;
else
- bFound = (ScGlobal::GetCollator()->compareString(aDataStr.getString(), rItem.maString.getString()) <= 0);
+ bFound = (ScGlobal::GetCollator().compareString(aDataStr.getString(), rItem.maString.getString()) <= 0);
}
if (!bFound)
@@ -7306,13 +7306,13 @@ void ScInterpreter::CalculateLookup(bool bHLookup)
svl::SharedString aParamStr = rItem.maString;
if ( bSorted )
{
- CollatorWrapper* pCollator = ScGlobal::GetCollator();
+ CollatorWrapper& rCollator = ScGlobal::GetCollator();
for (SCSIZE i = 0; i < nMatCount; i++)
{
if (bHLookup ? pMat->IsStringOrEmpty(i, 0) : pMat->IsStringOrEmpty(0, i))
{
sal_Int32 nRes =
- pCollator->compareString(
+ rCollator.compareString(
bHLookup ? pMat->GetString(i,0).getString() : pMat->GetString(0,i).getString(), aParamStr.getString());
if (nRes <= 0)
nDelta = i;
diff --git a/sc/source/core/tool/rangelst.cxx b/sc/source/core/tool/rangelst.cxx
index 8b1059e3b15e..d1b7e598c67e 100644
--- a/sc/source/core/tool/rangelst.cxx
+++ b/sc/source/core/tool/rangelst.cxx
@@ -1329,7 +1329,7 @@ public:
{
mrDoc.GetName( rStartPos1.Tab(), aStr1 );
mrDoc.GetName( rStartPos2.Tab(), aStr2 );
- nComp = ScGlobal::GetCollator()->compareString( aStr1, aStr2 );
+ nComp = ScGlobal::GetCollator().compareString( aStr1, aStr2 );
}
if (nComp < 0)
{
@@ -1360,7 +1360,7 @@ public:
{
mrDoc.GetName( rEndPos1.Tab(), aStr1 );
mrDoc.GetName( rEndPos2.Tab(), aStr2 );
- nComp = ScGlobal::GetCollator()->compareString( aStr1, aStr2 );
+ nComp = ScGlobal::GetCollator().compareString( aStr1, aStr2 );
}
if (nComp < 0)
{
diff --git a/sc/source/core/tool/rangenam.cxx b/sc/source/core/tool/rangenam.cxx
index debd75c30d44..e554597ce819 100644
--- a/sc/source/core/tool/rangenam.cxx
+++ b/sc/source/core/tool/rangenam.cxx
@@ -626,7 +626,7 @@ void ScRangeData::InitCode()
extern "C"
int ScRangeData_QsortNameCompare( const void* p1, const void* p2 )
{
- return static_cast<int>(ScGlobal::GetCollator()->compareString(
+ return static_cast<int>(ScGlobal::GetCollator().compareString(
(*static_cast<const ScRangeData* const *>(p1))->GetName(),
(*static_cast<const ScRangeData* const *>(p2))->GetName() ));
}
diff --git a/sc/source/core/tool/typedstrdata.cxx b/sc/source/core/tool/typedstrdata.cxx
index 59831dac7271..83ecdfa64053 100644
--- a/sc/source/core/tool/typedstrdata.cxx
+++ b/sc/source/core/tool/typedstrdata.cxx
@@ -23,7 +23,7 @@ bool ScTypedStrData::LessCaseSensitive::operator() (const ScTypedStrData& left,
if (left.mbIsDate != right.mbIsDate)
return left.mbIsDate < right.mbIsDate;
- return ScGlobal::GetCaseCollator()->compareString(
+ return ScGlobal::GetCaseCollator().compareString(
left.maStrValue, right.maStrValue) < 0;
}
@@ -38,7 +38,7 @@ bool ScTypedStrData::LessCaseInsensitive::operator() (const ScTypedStrData& left
if (left.mbIsDate != right.mbIsDate)
return left.mbIsDate < right.mbIsDate;
- return ScGlobal::GetCollator()->compareString(
+ return ScGlobal::GetCollator().compareString(
left.maStrValue, right.maStrValue) < 0;
}
@@ -53,7 +53,7 @@ bool ScTypedStrData::EqualCaseSensitive::operator() (const ScTypedStrData& left,
if (left.mbIsDate != right.mbIsDate )
return false;
- return ScGlobal::GetCaseCollator()->compareString(
+ return ScGlobal::GetCaseCollator().compareString(
left.maStrValue, right.maStrValue) == 0;
}
@@ -68,7 +68,7 @@ bool ScTypedStrData::EqualCaseInsensitive::operator() (const ScTypedStrData& lef
if (left.mbIsDate != right.mbIsDate )
return false;
- return ScGlobal::GetCollator()->compareString(
+ return ScGlobal::GetCollator().compareString(
left.maStrValue, right.maStrValue) == 0;
}
diff --git a/sc/source/filter/excel/xelink.cxx b/sc/source/filter/excel/xelink.cxx
index ef922401f3c0..4e30a29e9867 100644
--- a/sc/source/filter/excel/xelink.cxx
+++ b/sc/source/filter/excel/xelink.cxx
@@ -879,7 +879,7 @@ struct XclExpTabNameSort {
bool operator ()( const XclExpTabName& rArg1, const XclExpTabName& rArg2 )
{
// compare the sheet names only
- return ScGlobal::GetCollator()->compareString( rArg1.first, rArg2.first ) < 0;
+ return ScGlobal::GetCollator().compareString( rArg1.first, rArg2.first ) < 0;
}
};
diff --git a/sc/source/ui/miscdlgs/acredlin.cxx b/sc/source/ui/miscdlgs/acredlin.cxx
index 9cdc8a14cd81..06d4ef3a7b57 100644
--- a/sc/source/ui/miscdlgs/acredlin.cxx
+++ b/sc/source/ui/miscdlgs/acredlin.cxx
@@ -1806,7 +1806,7 @@ int ScAcceptChgDlg::ColCompareHdl(const weld::TreeIter& rLeft, const weld::TreeI
}
}
- return ScGlobal::GetCaseCollator()->compareString(rTreeView.get_text(rLeft, nSortCol),
+ return ScGlobal::GetCaseCollator().compareString(rTreeView.get_text(rLeft, nSortCol),
rTreeView.get_text(rRight, nSortCol));
}
diff --git a/sc/source/ui/miscdlgs/solveroptions.cxx b/sc/source/ui/miscdlgs/solveroptions.cxx
index b449d741eeb8..4c849959399a 100644
--- a/sc/source/ui/miscdlgs/solveroptions.cxx
+++ b/sc/source/ui/miscdlgs/solveroptions.cxx
@@ -48,7 +48,7 @@ struct ScSolverOptionsEntry
bool operator< (const ScSolverOptionsEntry& rOther) const
{
- return (ScGlobal::GetCollator()->compareString( aDescription, rOther.aDescription ) < 0);
+ return (ScGlobal::GetCollator().compareString( aDescription, rOther.aDescription ) < 0);
}
};
diff --git a/sc/source/ui/view/dbfunc3.cxx b/sc/source/ui/view/dbfunc3.cxx
index 94102611fdfd..29479c7ef78f 100644
--- a/sc/source/ui/view/dbfunc3.cxx
+++ b/sc/source/ui/view/dbfunc3.cxx
@@ -1730,7 +1730,7 @@ void ScDBFunc::DataPilotSort(ScDPObject* pDPObj, tools::Long nDimIndex, bool bAs
}
// Sort the member list in ascending order.
- ScOUStringCollate aCollate( ScGlobal::GetCollator() );
+ ScOUStringCollate aCollate( &ScGlobal::GetCollator() );
std::stable_sort(aMembers.begin(), aMembers.end(), aCollate);
// Collect and rank those custom sort strings that also exist in the member name list.
More information about the Libreoffice-commits
mailing list