summaryrefslogtreecommitdiff
path: root/i18npool/source/transliteration/transliteration_Numeric.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'i18npool/source/transliteration/transliteration_Numeric.cxx')
-rw-r--r--i18npool/source/transliteration/transliteration_Numeric.cxx23
1 files changed, 12 insertions, 11 deletions
diff --git a/i18npool/source/transliteration/transliteration_Numeric.cxx b/i18npool/source/transliteration/transliteration_Numeric.cxx
index 22b3769068f5..e0717379ed4c 100644
--- a/i18npool/source/transliteration/transliteration_Numeric.cxx
+++ b/i18npool/source/transliteration/transliteration_Numeric.cxx
@@ -58,19 +58,20 @@ Sequence< OUString > SAL_CALL
#define NUMBER_ZERO 0x30
OUString
-transliteration_Numeric::transliterateBullet( const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount,
+transliteration_Numeric::transliterateBullet( std::u16string_view inStr, sal_Int32 startPos, sal_Int32 nCount,
Sequence< sal_Int32 >* pOffset ) const
{
sal_Int32 number = -1, j = 0, endPos = startPos + nCount;
- if (endPos > inStr.getLength())
- endPos = inStr.getLength();
+ if (endPos > static_cast<sal_Int32>(inStr.size()))
+ endPos = inStr.size();
rtl_uString* pStr = rtl_uString_alloc(nCount);
sal_Unicode* out = pStr->buffer;
if (pOffset)
pOffset->realloc(nCount);
+ auto ppOffset = pOffset ? pOffset->getArray() : nullptr;
for (sal_Int32 i = startPos; i < endPos; i++) {
if (isNumber(inStr[i]))
@@ -83,22 +84,22 @@ transliteration_Numeric::transliterateBullet( const OUString& inStr, sal_Int32 s
}
} else {
if (number == 0) {
- if (pOffset)
- (*pOffset)[j] = startPos;
+ if (ppOffset)
+ ppOffset[j] = startPos;
out[j++] = NUMBER_ZERO;
} else if (number > tableSize && !recycleSymbol) {
for (sal_Int32 k = startPos; k < i; k++) {
- if (pOffset)
- (*pOffset)[j] = k;
+ if (ppOffset)
+ ppOffset[j] = k;
out[j++] = inStr[k];
}
} else if (number > 0) {
- if (pOffset)
- (*pOffset)[j] = startPos;
+ if (ppOffset)
+ ppOffset[j] = startPos;
out[j++] = table[--number % tableSize];
} else if (i < endPos) {
- if (pOffset)
- (*pOffset)[j] = i;
+ if (ppOffset)
+ ppOffset[j] = i;
out[j++] = inStr[i];
}
number = -1;