summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2022-07-20 21:23:32 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-09-01 15:32:16 +0000
commit6cdc2fc0f4bc944bda6a9d0abfa0512672cda43a (patch)
tree5e993df0468c7ea1c853c0d4194f8cb20a40d25f
parent[docs] Fix ints that should be qsizetype [src/corelib/text] (diff)
downloadqtbase-6cdc2fc0f4bc944bda6a9d0abfa0512672cda43a.tar.xz
qtbase-6cdc2fc0f4bc944bda6a9d0abfa0512672cda43a.zip
QLocale: port to qsizetype [2/N]: remainder (qlocale_win.cpp partial)
Port ints to qsizetypes where they're not blatantly wrong. This includes indexed loops that don't require the additional range, because int these days is a code smell, so if we can save the next code reader a few moments of digging to convince herself that the int is ok even in 64-bit builds, then let's do it. The Windows implementation only has the most obvious occurrences ported, because I lack platform access. Created QTBUG-105100 to track the missing changes. OSX should be fine, provided sizeof(long) == 8 on 64-bit OSX. Task-number: QTBUG-103531 Change-Id: I679183f28ed42e89e2879e29457e6a4e487fed0d Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 24e8a693cdf418a90559472addfd49637ff4e270) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/corelib/text/qlocale.cpp44
-rw-r--r--src/corelib/text/qlocale_mac.mm4
-rw-r--r--src/corelib/text/qlocale_p.h6
-rw-r--r--src/corelib/text/qlocale_win.cpp4
4 files changed, 29 insertions, 29 deletions
diff --git a/src/corelib/text/qlocale.cpp b/src/corelib/text/qlocale.cpp
index df05e1378c..3cd281443c 100644
--- a/src/corelib/text/qlocale.cpp
+++ b/src/corelib/text/qlocale.cpp
@@ -177,7 +177,7 @@ QLocale::Script QLocalePrivate::codeToScript(QStringView code) noexcept
unsigned char c3 = code[3].toLower().toLatin1();
const unsigned char *c = script_code_list;
- for (int i = 0; i < QLocale::LastScript; ++i, c += 4) {
+ for (qsizetype i = 0; i < QLocale::LastScript; ++i, c += 4) {
if (c0 == c[0] && c1 == c[1] && c2 == c[2] && c3 == c[3])
return QLocale::Script(i);
}
@@ -3588,7 +3588,7 @@ QString QLocaleData::doubleToString(double d, int precision, DoubleForm form,
Q_ASSERT(!zero.at(0).isSurrogate());
char16_t z = zero.at(0).unicode();
char16_t *const value = reinterpret_cast<char16_t *>(digits.data());
- for (int i = 0; i < digits.length(); ++i)
+ for (qsizetype i = 0; i < digits.size(); ++i)
value[i] = unicodeForDigit(value[i] - '0', z);
}
@@ -3636,7 +3636,7 @@ QString QLocaleData::doubleToString(double d, int precision, DoubleForm form,
// Assume digitCount < 95, so we can ignore the 3-digit
// exponent case (we'll set useDecimal false anyway).
- const int digitCount = digits.length() / zero.size();
+ const qsizetype digitCount = digits.size() / zero.size();
if (!mustMarkDecimal) {
// Decimal separator is skipped if at end; adjust if
// that happens for only one form:
@@ -3670,7 +3670,7 @@ QString QLocaleData::doubleToString(double d, int precision, DoubleForm form,
// Pad with zeros. LeftAdjusted overrides ZeroPadded.
if (flags & ZeroPadded && !(flags & LeftAdjusted)) {
- for (int i = numStr.length() / zero.length() + prefix.size(); i < width; ++i)
+ for (qsizetype i = numStr.size() / zero.size() + prefix.size(); i < width; ++i)
numStr.prepend(zero);
}
}
@@ -3693,17 +3693,17 @@ QString QLocaleData::decimalForm(QString &&digits, int decpt, int precision,
for (; decpt < 0; ++decpt)
digits.prepend(zero);
} else {
- for (int i = digits.length() / digitWidth; i < decpt; ++i)
+ for (qsizetype i = digits.size() / digitWidth; i < decpt; ++i)
digits.append(zero);
}
switch (pm) {
case PMDecimalDigits:
- for (int i = digits.length() / digitWidth - decpt; i < precision; ++i)
+ for (qsizetype i = digits.size() / digitWidth - decpt; i < precision; ++i)
digits.append(zero);
break;
case PMSignificantDigits:
- for (int i = digits.length() / digitWidth; i < precision; ++i)
+ for (qsizetype i = digits.size() / digitWidth; i < precision; ++i)
digits.append(zero);
break;
case PMChopTrailingZeros:
@@ -3716,7 +3716,7 @@ QString QLocaleData::decimalForm(QString &&digits, int decpt, int precision,
if (groupDigits) {
const QString group = groupSeparator();
- int i = decpt - m_grouping_least;
+ qsizetype i = decpt - m_grouping_least;
if (i >= m_grouping_top) {
digits.insert(i * digitWidth, group);
while ((i -= m_grouping_higher) >= m_grouping_top)
@@ -3741,11 +3741,11 @@ QString QLocaleData::exponentForm(QString &&digits, int decpt, int precision,
switch (pm) {
case PMDecimalDigits:
- for (int i = digits.length() / digitWidth; i < precision + 1; ++i)
+ for (qsizetype i = digits.size() / digitWidth; i < precision + 1; ++i)
digits.append(zero);
break;
case PMSignificantDigits:
- for (int i = digits.length() / digitWidth; i < precision; ++i)
+ for (qsizetype i = digits.size() / digitWidth; i < precision; ++i)
digits.append(zero);
break;
case PMChopTrailingZeros:
@@ -3819,11 +3819,11 @@ QString QLocaleData::applyIntegerFormatting(QString &&numStr, bool negative, int
const QString prefix = signPrefix(negative, flags) + basePrefix;
// Count how much of width we've used up. Each digit counts as one
- int usedWidth = digitCount + prefix.size();
+ qsizetype usedWidth = digitCount + prefix.size();
if (base == 10 && flags & GroupDigits) {
const QString group = groupSeparator();
- int i = digitCount - m_grouping_least;
+ qsizetype i = digitCount - m_grouping_least;
if (i >= m_grouping_top) {
numStr.insert(i * digitWidth, group);
++usedWidth;
@@ -3839,7 +3839,7 @@ QString QLocaleData::applyIntegerFormatting(QString &&numStr, bool negative, int
if (noPrecision)
precision = 1;
- for (int i = numStr.length(); i < precision; ++i) {
+ for (qsizetype i = numStr.size(); i < precision; ++i) {
numStr.prepend(zero);
usedWidth++;
}
@@ -3847,7 +3847,7 @@ QString QLocaleData::applyIntegerFormatting(QString &&numStr, bool negative, int
// LeftAdjusted overrides ZeroPadded; and sprintf() only pads when
// precision is not specified in the format string.
if (noPrecision && flags & ZeroPadded && !(flags & LeftAdjusted)) {
- for (int i = usedWidth; i < width; ++i)
+ for (qsizetype i = usedWidth; i < width; ++i)
numStr.prepend(zero);
}
@@ -3876,11 +3876,11 @@ bool QLocaleData::numberToCLocale(QStringView s, QLocale::NumberOptions number_o
auto length = s.size();
decltype(length) idx = 0;
- int digitsInGroup = 0;
- int decpt_idx = -1;
- int last_separator_idx = -1;
- int start_of_digits_idx = -1;
- int exponent_idx = -1;
+ qsizetype digitsInGroup = 0;
+ qsizetype decpt_idx = -1;
+ qsizetype last_separator_idx = -1;
+ qsizetype start_of_digits_idx = -1;
+ qsizetype exponent_idx = -1;
while (idx < length) {
const QStringView in = QStringView(uc + idx, uc[idx].isHighSurrogate() ? 2 : 1);
@@ -4227,7 +4227,7 @@ QString QLocale::currencySymbol(QLocale::CurrencySymbolFormat format) const
case CurrencyIsoCode: {
const char *code = d->m_data->m_currency_iso_code;
if (auto len = qstrnlen(code, 3))
- return QString::fromLatin1(code, int(len));
+ return QString::fromLatin1(code, qsizetype(len));
break;
}
}
@@ -4424,12 +4424,12 @@ QStringList QLocale::uiLanguages() const
{
locales.append(*this);
}
- for (int i = locales.size(); i-- > 0; ) {
+ for (qsizetype i = locales.size(); i-- > 0; ) {
const QLocale &locale = locales.at(i);
const auto data = locale.d->m_data;
QLocaleId id = data->id();
- int j;
+ qsizetype j;
QByteArray prior;
if (isSystem && i < uiLanguages.size()) {
// Adding likely-adjusted forms to system locale's list.
diff --git a/src/corelib/text/qlocale_mac.mm b/src/corelib/text/qlocale_mac.mm
index d410e13565..f3ca942845 100644
--- a/src/corelib/text/qlocale_mac.mm
+++ b/src/corelib/text/qlocale_mac.mm
@@ -589,9 +589,9 @@ QVariant QSystemLocale::query(QueryType type, QVariant in) const
case UILanguages: {
QStringList result;
QCFType<CFArrayRef> languages = CFLocaleCopyPreferredLanguages();
- const int cnt = CFArrayGetCount(languages);
+ const CFIndex cnt = CFArrayGetCount(languages);
result.reserve(cnt);
- for (int i = 0; i < cnt; ++i) {
+ for (CFIndex i = 0; i < cnt; ++i) {
const QString lang = QString::fromCFString(
static_cast<CFStringRef>(CFArrayGetValueAtIndex(languages, i)));
result.append(lang);
diff --git a/src/corelib/text/qlocale_p.h b/src/corelib/text/qlocale_p.h
index 1af23b9ad1..60408dcae7 100644
--- a/src/corelib/text/qlocale_p.h
+++ b/src/corelib/text/qlocale_p.h
@@ -292,11 +292,11 @@ public:
{
return { reinterpret_cast<const QChar *>(table + offset), size };
}
- [[nodiscard]] QString getListEntry(const char16_t *table, int index) const
+ [[nodiscard]] QString getListEntry(const char16_t *table, qsizetype index) const
{
return listEntry(table, index).getData(table);
}
- [[nodiscard]] QStringView viewListEntry(const char16_t *table, int index) const
+ [[nodiscard]] QStringView viewListEntry(const char16_t *table, qsizetype index) const
{
return listEntry(table, index).viewData(table);
}
@@ -309,7 +309,7 @@ public:
return 0;
}
private:
- [[nodiscard]] DataRange listEntry(const char16_t *table, int index) const
+ [[nodiscard]] DataRange listEntry(const char16_t *table, qsizetype index) const
{
const char16_t separator = ';';
quint16 i = 0;
diff --git a/src/corelib/text/qlocale_win.cpp b/src/corelib/text/qlocale_win.cpp
index 4883547593..d395b1f0cd 100644
--- a/src/corelib/text/qlocale_win.cpp
+++ b/src/corelib/text/qlocale_win.cpp
@@ -224,7 +224,7 @@ QString QSystemLocalePrivate::substituteDigits(QString &&string)
break;
Q_ASSERT(z > '9');
ushort *const qch = reinterpret_cast<ushort *>(string.data());
- for (int i = 0, stop = string.size(); i < stop; ++i) {
+ for (qsizetype i = 0, stop = string.size(); i < stop; ++i) {
ushort &ch = qch[i];
if (ch >= '0' && ch <= '9')
ch = unicodeForDigit(ch - '0', z);
@@ -434,7 +434,7 @@ QString QSystemLocalePrivate::yearFix(int year, int fakeYear, QString &&formatte
if (formatted.contains(yearUsed))
return std::move(formatted).replace(yearUsed, sign + trueYear);
- const int twoDigits = 2 * zero.size();
+ const qsizetype twoDigits = 2 * zero.size();
tail = QStringView{yearUsed}.last(twoDigits);
if (formatted.contains(tail)) {
if (matchTwo)