summaryrefslogtreecommitdiff
path: root/i18npool
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2021-10-14 09:25:24 +0200
committerMike Kaganski <mike.kaganski@collabora.com>2021-10-15 10:36:36 +0200
commit2484de6728bd11bb7949003d112f1ece2223c7a1 (patch)
tree1296534e396da284b38d2c478dcd2b31c4714179 /i18npool
parent88375fd36899d21d3309cf8333712e02a87d3a91 (diff)
Remove non-const Sequence::begin()/end() in internal code
... to avoid hidden cost of multiple COW checks, because they call getArray() internally. This obsoletes [loplugin:sequenceloop]. Also rename toNonConstRange to asNonConstRange, to reflect that the result is a view of the sequence, not an independent object. TODO: also drop non-const operator[], but introduce operator[] in SequenceRange. Change-Id: Idd5fd7a3400fe65274d2a6343025e2ef8911635d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123518 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'i18npool')
-rw-r--r--i18npool/source/calendar/calendarImpl.cxx2
-rw-r--r--i18npool/source/collator/collatorImpl.cxx4
-rw-r--r--i18npool/source/localedata/localedata.cxx6
-rw-r--r--i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP.cxx2
-rw-r--r--i18npool/source/transliteration/ignoreIterationMark_ja_JP.cxx2
-rw-r--r--i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx2
-rw-r--r--i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP.cxx2
-rw-r--r--i18npool/source/transliteration/transliterationImpl.cxx10
-rw-r--r--i18npool/source/transliteration/transliteration_OneToOne.cxx2
-rw-r--r--i18npool/source/transliteration/transliteration_body.cxx2
10 files changed, 17 insertions, 17 deletions
diff --git a/i18npool/source/calendar/calendarImpl.cxx b/i18npool/source/calendar/calendarImpl.cxx
index c3ac0d54460a..4e364696cf20 100644
--- a/i18npool/source/calendar/calendarImpl.cxx
+++ b/i18npool/source/calendar/calendarImpl.cxx
@@ -139,7 +139,7 @@ CalendarImpl::getAllCalendars( const css::lang::Locale& rLocale )
{
const Sequence< Calendar2 > xC = LocaleDataImpl::get()->getAllCalendars2(rLocale);
Sequence< OUString > xSeq( xC.getLength() );
- std::transform(xC.begin(), xC.end(), xSeq.begin(),
+ std::transform(xC.begin(), xC.end(), xSeq.getArray(),
[](const Calendar2& rCal) { return rCal.Name; });
return xSeq;
}
diff --git a/i18npool/source/collator/collatorImpl.cxx b/i18npool/source/collator/collatorImpl.cxx
index 56fb4bf90502..fff944d6ff7e 100644
--- a/i18npool/source/collator/collatorImpl.cxx
+++ b/i18npool/source/collator/collatorImpl.cxx
@@ -107,7 +107,7 @@ CollatorImpl::listCollatorAlgorithms( const lang::Locale& rLocale )
nLocale = rLocale;
const Sequence< Implementation > &imp = mxLocaleData->getCollatorImplementations(rLocale);
Sequence< OUString > list(imp.getLength());
- auto pBegin = list.begin();
+ auto pBegin = list.getArray();
auto pId = pBegin;
for (const auto& rImpl : imp) {
@@ -126,7 +126,7 @@ CollatorImpl::listCollatorOptions( const OUString& /*collatorAlgorithmName*/ )
const Sequence< OUString > option_str = mxLocaleData->getCollationOptions(nLocale);
Sequence< sal_Int32 > option_int(option_str.getLength());
- std::transform(option_str.begin(), option_str.end(), option_int.begin(), [](const OUString& rOpt) {
+ std::transform(option_str.begin(), option_str.end(), option_int.getArray(), [](const OUString& rOpt) {
return rOpt == "IGNORE_CASE" ? CollatorOptions::CollatorOptions_IGNORE_CASE :
rOpt == "IGNORE_KANA" ? CollatorOptions::CollatorOptions_IGNORE_KANA :
rOpt == "IGNORE_WIDTH" ? CollatorOptions::CollatorOptions_IGNORE_WIDTH : 0; });
diff --git a/i18npool/source/localedata/localedata.cxx b/i18npool/source/localedata/localedata.cxx
index 3dc113fe7eed..145b576f16fc 100644
--- a/i18npool/source/localedata/localedata.cxx
+++ b/i18npool/source/localedata/localedata.cxx
@@ -719,7 +719,7 @@ Sequence< CalendarItem2 > LocaleDataImpl::getCalendarItems(
case REF_MONTHS:
case REF_GMONTHS:
case REF_PMONTHS:
- for (CalendarItem2& rItem : aItems)
+ for (CalendarItem2& rItem : asNonConstRange(aItems))
{
rItem = CalendarItem2{ OUString(allCalendars[rnOffset]),
OUString(allCalendars[rnOffset+1]),
@@ -729,7 +729,7 @@ Sequence< CalendarItem2 > LocaleDataImpl::getCalendarItems(
break;
case REF_ERAS:
// Absent narrow name.
- for (CalendarItem2& rItem : aItems)
+ for (CalendarItem2& rItem : asNonConstRange(aItems))
{
rItem = CalendarItem2{ OUString(allCalendars[rnOffset]),
OUString(allCalendars[rnOffset+1]),
@@ -1260,7 +1260,7 @@ LocaleDataImpl::getContinuousNumberingLevels( const lang::Locale& rLocale )
// allocate memory for nAttributes attributes for each of the nStyles styles.
Sequence< Sequence<beans::PropertyValue> > pv( nStyles );
- for( auto& i : pv ) {
+ for( auto& i : asNonConstRange(pv) ) {
i = Sequence<beans::PropertyValue>( nAttributes );
}
diff --git a/i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP.cxx b/i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP.cxx
index 5a071a3887fa..5e8659027992 100644
--- a/i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP.cxx
+++ b/i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP.cxx
@@ -77,7 +77,7 @@ ignoreIandEfollowedByYa_ja_JP::foldingImpl( const OUString& inStr, sal_Int32 sta
if (pOffset) {
// Allocate nCount length to offset argument.
pOffset->realloc( nCount );
- auto [begin, end] = toNonConstRange(*pOffset);
+ auto [begin, end] = asNonConstRange(*pOffset);
std::iota(begin, end, startPos);
}
diff --git a/i18npool/source/transliteration/ignoreIterationMark_ja_JP.cxx b/i18npool/source/transliteration/ignoreIterationMark_ja_JP.cxx
index bdee0d87d6fa..c5a3cb04565c 100644
--- a/i18npool/source/transliteration/ignoreIterationMark_ja_JP.cxx
+++ b/i18npool/source/transliteration/ignoreIterationMark_ja_JP.cxx
@@ -95,7 +95,7 @@ ignoreIterationMark_ja_JP::foldingImpl( const OUString& inStr, sal_Int32 startPo
if (pOffset) {
// Allocate nCount length to offset argument.
pOffset->realloc( nCount );
- auto [begin, end] = toNonConstRange(*pOffset);
+ auto [begin, end] = asNonConstRange(*pOffset);
std::iota(begin, end, startPos);
}
diff --git a/i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx b/i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx
index 1c64d65104d9..113c80f9aeeb 100644
--- a/i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx
+++ b/i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx
@@ -38,7 +38,7 @@ ignoreKiKuFollowedBySa_ja_JP::foldingImpl( const OUString& inStr, sal_Int32 star
if (pOffset) {
// Allocate nCount length to offset argument.
pOffset->realloc( nCount );
- auto [begin, end] = toNonConstRange(*pOffset);
+ auto [begin, end] = asNonConstRange(*pOffset);
std::iota(begin, end, startPos);
}
diff --git a/i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP.cxx b/i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP.cxx
index fc87d206dc3e..3291afa9ba7d 100644
--- a/i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP.cxx
+++ b/i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP.cxx
@@ -300,7 +300,7 @@ ignoreProlongedSoundMark_ja_JP::foldingImpl( const OUString& inStr, sal_Int32 st
if (pOffset) {
// Allocate nCount length to offset argument.
pOffset->realloc( nCount );
- auto [begin, end] = toNonConstRange(*pOffset);
+ auto [begin, end] = asNonConstRange(*pOffset);
std::iota(begin, end, startPos);
}
diff --git a/i18npool/source/transliteration/transliterationImpl.cxx b/i18npool/source/transliteration/transliterationImpl.cxx
index 4a1e2eab6147..55236ec3dfa9 100644
--- a/i18npool/source/transliteration/transliterationImpl.cxx
+++ b/i18npool/source/transliteration/transliterationImpl.cxx
@@ -306,7 +306,7 @@ TransliterationImpl::transliterate( const OUString& inStr, sal_Int32 startPos, s
tmpStr = bodyCascade[0]->transliterate(tmpStr, 0, nCount, offset);
if ( startPos )
{
- for (sal_Int32 & j : toNonConstRange(offset))
+ for (sal_Int32 & j : asNonConstRange(offset))
j += startPos;
}
return tmpStr;
@@ -316,7 +316,7 @@ TransliterationImpl::transliterate( const OUString& inStr, sal_Int32 startPos, s
{
OUString tmpStr = inStr.copy(startPos, nCount);
- auto [begin, end] = toNonConstRange(offset);
+ auto [begin, end] = asNonConstRange(offset);
std::iota(begin, end, startPos);
Sequence<sal_Int32> from(nCount);
@@ -328,7 +328,7 @@ TransliterationImpl::transliterate( const OUString& inStr, sal_Int32 startPos, s
assert(from.getLength() == nCount);
from.swap(to);
- for (sal_Int32& ix : toNonConstRange(to))
+ for (sal_Int32& ix : asNonConstRange(to))
ix = std::as_const(from)[ix];
}
offset = to;
@@ -356,7 +356,7 @@ TransliterationImpl::folding( const OUString& inStr, sal_Int32 startPos, sal_Int
tmpStr = bodyCascade[0]->folding(tmpStr, 0, nCount, offset);
if ( startPos )
{
- for (sal_Int32 & j : offset)
+ for (sal_Int32 & j : asNonConstRange(offset))
j += startPos;
}
return tmpStr;
@@ -366,7 +366,7 @@ TransliterationImpl::folding( const OUString& inStr, sal_Int32 startPos, sal_Int
{
OUString tmpStr = inStr.copy(startPos, nCount);
- auto [begin, end] = toNonConstRange(offset);
+ auto [begin, end] = asNonConstRange(offset);
std::iota(begin, end, startPos);
sal_Int16 from = 0, to = 1;
diff --git a/i18npool/source/transliteration/transliteration_OneToOne.cxx b/i18npool/source/transliteration/transliteration_OneToOne.cxx
index 34f4902f79bb..233f3dfe7051 100644
--- a/i18npool/source/transliteration/transliteration_OneToOne.cxx
+++ b/i18npool/source/transliteration/transliteration_OneToOne.cxx
@@ -68,7 +68,7 @@ transliteration_OneToOne::transliterateImpl( const OUString& inStr, sal_Int32 st
// Allocate nCount length to offset argument.
if (pOffset) {
pOffset->realloc( nCount );
- auto [begin, end] = toNonConstRange(*pOffset);
+ auto [begin, end] = asNonConstRange(*pOffset);
std::iota(begin, end, startPos);
}
diff --git a/i18npool/source/transliteration/transliteration_body.cxx b/i18npool/source/transliteration/transliteration_body.cxx
index b0c710c6c696..a64c8050bb79 100644
--- a/i18npool/source/transliteration/transliteration_body.cxx
+++ b/i18npool/source/transliteration/transliteration_body.cxx
@@ -260,7 +260,7 @@ static OUString transliterate_titlecase_Impl(
xCharClassImpl->toLower( aText, 1, aText.getLength() - 1, rLocale );
pOffset->realloc( aRes.getLength() );
- auto [begin, end] = toNonConstRange(*pOffset);
+ auto [begin, end] = asNonConstRange(*pOffset);
sal_Int32* pOffsetInt = std::fill_n(begin, nResolvedLen, 0);
std::iota(pOffsetInt, end, 1);
}