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>
This commit is contained in:
parent
e8e91ef35c
commit
6cdc2fc0f4
@ -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.
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user