QSettings: s/int/qsizetype/ on the internals
Can't change the public API, but we can at least change the internals to use the right type, ready for when we do. Also changed some C-style casts to function-style, even when the type remains int; renamed an inner loop variable to avoid shadowing an outer; and changed a use of count() to size(). Change-Id: Id52ce0a2f0177bf1d6dfbd45a592a45afcddf9b4 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>bb10
parent
605c747321
commit
4fa60c1736
|
|
@ -325,7 +325,7 @@ QSettingsPrivate *QSettingsPrivate::create(const QString &fileName, QSettings::F
|
|||
void QSettingsPrivate::processChild(QStringView key, ChildSpec spec, QStringList &result)
|
||||
{
|
||||
if (spec != AllKeys) {
|
||||
int slashPos = key.indexOf(u'/');
|
||||
qsizetype slashPos = key.indexOf(u'/');
|
||||
if (slashPos == -1) {
|
||||
if (spec != ChildKeys)
|
||||
return;
|
||||
|
|
@ -389,7 +389,7 @@ QStringList QSettingsPrivate::variantListToStringList(const QVariantList &l)
|
|||
QVariant QSettingsPrivate::stringListToVariantList(const QStringList &l)
|
||||
{
|
||||
QStringList outStringList = l;
|
||||
for (int i = 0; i < outStringList.count(); ++i) {
|
||||
for (qsizetype i = 0; i < outStringList.size(); ++i) {
|
||||
const QString &str = outStringList.at(i);
|
||||
|
||||
if (str.startsWith(u'@')) {
|
||||
|
|
@ -549,7 +549,7 @@ QVariant QSettingsPrivate::stringToVariant(const QString &s)
|
|||
void QSettingsPrivate::iniEscapedKey(const QString &key, QByteArray &result)
|
||||
{
|
||||
result.reserve(result.length() + key.length() * 3 / 2);
|
||||
for (int i = 0; i < key.size(); ++i) {
|
||||
for (qsizetype i = 0; i < key.size(); ++i) {
|
||||
uint ch = key.at(i).unicode();
|
||||
|
||||
if (ch == '/') {
|
||||
|
|
@ -564,7 +564,7 @@ void QSettingsPrivate::iniEscapedKey(const QString &key, QByteArray &result)
|
|||
} else {
|
||||
result += "%U";
|
||||
QByteArray hexCode;
|
||||
for (int i = 0; i < 4; ++i) {
|
||||
for (int j = 0; j < 4; ++j) {
|
||||
hexCode.prepend(QtMiscUtils::toHexUpper(ch % 16));
|
||||
ch >>= 4;
|
||||
}
|
||||
|
|
@ -637,8 +637,8 @@ void QSettingsPrivate::iniEscapedString(const QString &str, QByteArray &result)
|
|||
bool useCodec = !str.startsWith("@ByteArray("_L1)
|
||||
&& !str.startsWith("@Variant("_L1);
|
||||
|
||||
int i;
|
||||
int startPos = result.size();
|
||||
qsizetype i;
|
||||
qsizetype startPos = result.size();
|
||||
|
||||
QStringEncoder toUtf8(QStringEncoder::Utf8);
|
||||
|
||||
|
|
@ -711,9 +711,9 @@ void QSettingsPrivate::iniEscapedString(const QString &str, QByteArray &result)
|
|||
}
|
||||
}
|
||||
|
||||
inline static void iniChopTrailingSpaces(QString &str, int limit)
|
||||
inline static void iniChopTrailingSpaces(QString &str, qsizetype limit)
|
||||
{
|
||||
int n = str.size() - 1;
|
||||
qsizetype n = str.size() - 1;
|
||||
QChar ch;
|
||||
while (n >= limit && ((ch = str.at(n)) == u' ' || ch == u'\t'))
|
||||
str.truncate(n--);
|
||||
|
|
@ -732,7 +732,7 @@ void QSettingsPrivate::iniEscapedStringList(const QStringList &strs, QByteArray
|
|||
*/
|
||||
result += "@Invalid()";
|
||||
} else {
|
||||
for (int i = 0; i < strs.size(); ++i) {
|
||||
for (qsizetype i = 0; i < strs.size(); ++i) {
|
||||
if (i != 0)
|
||||
result += ", ";
|
||||
iniEscapedString(strs.at(i), result);
|
||||
|
|
@ -762,7 +762,7 @@ bool QSettingsPrivate::iniUnescapedStringList(QByteArrayView str,
|
|||
bool inQuotedString = false;
|
||||
bool currentValueIsQuoted = false;
|
||||
char16_t escapeVal = 0;
|
||||
int i = 0;
|
||||
qsizetype i = 0;
|
||||
char ch;
|
||||
QStringDecoder fromUtf8(QStringDecoder::Utf8);
|
||||
|
||||
|
|
@ -772,7 +772,7 @@ StSkipSpaces:
|
|||
// fallthrough
|
||||
|
||||
StNormal:
|
||||
int chopLimit = stringResult.length();
|
||||
qsizetype chopLimit = stringResult.length();
|
||||
while (i < str.size()) {
|
||||
switch (str.at(i)) {
|
||||
case '\\':
|
||||
|
|
@ -836,7 +836,7 @@ StNormal:
|
|||
}
|
||||
Q_FALLTHROUGH();
|
||||
default: {
|
||||
int j = i + 1;
|
||||
qsizetype j = i + 1;
|
||||
while (j < str.size()) {
|
||||
ch = str.at(j);
|
||||
if (ch == '\\' || ch == '"' || ch == ',')
|
||||
|
|
@ -895,9 +895,9 @@ end:
|
|||
return isStringList;
|
||||
}
|
||||
|
||||
QStringList QSettingsPrivate::splitArgs(const QString &s, int idx)
|
||||
QStringList QSettingsPrivate::splitArgs(const QString &s, qsizetype idx)
|
||||
{
|
||||
int l = s.length();
|
||||
qsizetype l = s.length();
|
||||
Q_ASSERT(l > 0);
|
||||
Q_ASSERT(s.at(idx) == u'(');
|
||||
Q_ASSERT(s.at(l - 1) == u')');
|
||||
|
|
@ -939,7 +939,7 @@ void QConfFileSettingsPrivate::initFormat()
|
|||
const auto locker = qt_scoped_lock(settingsGlobalMutex);
|
||||
const CustomFormatVector *customFormatVector = customFormatVectorFunc();
|
||||
|
||||
int i = (int)format - (int)QSettings::CustomFormat1;
|
||||
qsizetype i = qsizetype(format) - qsizetype(QSettings::CustomFormat1);
|
||||
if (i >= 0 && i < customFormatVector->size()) {
|
||||
QConfFileCustomFormat info = customFormatVector->at(i);
|
||||
extension = info.extension;
|
||||
|
|
@ -1058,8 +1058,8 @@ static std::unique_lock<QBasicMutex> initDefaultPaths(std::unique_lock<QBasicMut
|
|||
|
||||
static Path getPath(QSettings::Format format, QSettings::Scope scope)
|
||||
{
|
||||
Q_ASSERT((int)QSettings::NativeFormat == 0);
|
||||
Q_ASSERT((int)QSettings::IniFormat == 1);
|
||||
Q_ASSERT(int(QSettings::NativeFormat) == 0);
|
||||
Q_ASSERT(int(QSettings::IniFormat) == 1);
|
||||
|
||||
auto locker = qt_unique_lock(settingsGlobalMutex);
|
||||
PathHash *pathHash = pathHashFunc();
|
||||
|
|
@ -1266,7 +1266,7 @@ QStringList QConfFileSettingsPrivate::children(const QString &prefix, ChildSpec
|
|||
ParsedSettingsMap::const_iterator j;
|
||||
|
||||
QSettingsKey thePrefix(prefix, caseSensitivity);
|
||||
int startPos = prefix.size();
|
||||
qsizetype startPos = prefix.size();
|
||||
|
||||
for (auto confFile : qAsConst(confFiles)) {
|
||||
const auto locker = qt_scoped_lock(confFile->mutex);
|
||||
|
|
@ -1535,10 +1535,11 @@ static const char charTraits[256] =
|
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
bool QConfFileSettingsPrivate::readIniLine(QByteArrayView data, int &dataPos,
|
||||
int &lineStart, int &lineLen, int &equalsPos)
|
||||
bool QConfFileSettingsPrivate::readIniLine(QByteArrayView data, qsizetype &dataPos,
|
||||
qsizetype &lineStart, qsizetype &lineLen,
|
||||
qsizetype &equalsPos)
|
||||
{
|
||||
int dataLen = data.length();
|
||||
qsizetype dataLen = data.length();
|
||||
bool inQuotes = false;
|
||||
|
||||
equalsPos = -1;
|
||||
|
|
@ -1547,7 +1548,7 @@ bool QConfFileSettingsPrivate::readIniLine(QByteArrayView data, int &dataPos,
|
|||
while (lineStart < dataLen && (charTraits[uint(uchar(data.at(lineStart)))] & Space))
|
||||
++lineStart;
|
||||
|
||||
int i = lineStart;
|
||||
qsizetype i = lineStart;
|
||||
while (i < dataLen) {
|
||||
char ch = data.at(i);
|
||||
while (!(charTraits[uchar(ch)] & Special)) {
|
||||
|
|
@ -1621,13 +1622,13 @@ bool QConfFileSettingsPrivate::readIniFile(QByteArrayView data,
|
|||
}
|
||||
|
||||
QString currentSection;
|
||||
int currentSectionStart = 0;
|
||||
int dataPos = 0;
|
||||
int lineStart;
|
||||
int lineLen;
|
||||
int equalsPos;
|
||||
int position = 0;
|
||||
int sectionPosition = 0;
|
||||
qsizetype currentSectionStart = 0;
|
||||
qsizetype dataPos = 0;
|
||||
qsizetype lineStart;
|
||||
qsizetype lineLen;
|
||||
qsizetype equalsPos;
|
||||
qsizetype position = 0;
|
||||
qsizetype sectionPosition = 0;
|
||||
bool ok = true;
|
||||
|
||||
// skip potential utf8 BOM
|
||||
|
|
@ -1642,7 +1643,7 @@ bool QConfFileSettingsPrivate::readIniFile(QByteArrayView data,
|
|||
|
||||
// this is a section
|
||||
QByteArrayView iniSection;
|
||||
int idx = data.indexOf(']', lineStart);
|
||||
qsizetype idx = data.indexOf(']', lineStart);
|
||||
if (idx == -1 || idx >= lineStart + lineLen) {
|
||||
ok = false;
|
||||
iniSection = data.sliced(lineStart + 1, lineLen - 1);
|
||||
|
|
@ -1681,13 +1682,13 @@ bool QConfFileSettingsPrivate::readIniSection(const QSettingsKey §ion, QByte
|
|||
{
|
||||
QStringList strListValue;
|
||||
bool sectionIsLowercase = (section == section.originalCaseKey());
|
||||
int equalsPos;
|
||||
qsizetype equalsPos;
|
||||
|
||||
bool ok = true;
|
||||
int dataPos = 0;
|
||||
int lineStart;
|
||||
int lineLen;
|
||||
int position = section.originalKeyPosition();
|
||||
qsizetype dataPos = 0;
|
||||
qsizetype lineStart;
|
||||
qsizetype lineLen;
|
||||
qsizetype position = section.originalKeyPosition();
|
||||
|
||||
while (readIniLine(data, dataPos, lineStart, lineLen, equalsPos)) {
|
||||
char ch = data.at(lineStart);
|
||||
|
|
@ -1699,10 +1700,10 @@ bool QConfFileSettingsPrivate::readIniSection(const QSettingsKey §ion, QByte
|
|||
continue;
|
||||
}
|
||||
|
||||
int keyEnd = equalsPos;
|
||||
qsizetype keyEnd = equalsPos;
|
||||
while (keyEnd > lineStart && ((ch = data.at(keyEnd - 1)) == ' ' || ch == '\t'))
|
||||
--keyEnd;
|
||||
int valueStart = equalsPos + 1;
|
||||
qsizetype valueStart = equalsPos + 1;
|
||||
|
||||
QString key = section.originalCaseKey();
|
||||
bool keyIsLowercase
|
||||
|
|
@ -1739,9 +1740,9 @@ class QSettingsIniKey : public QString
|
|||
{
|
||||
public:
|
||||
inline QSettingsIniKey() : position(-1) {}
|
||||
inline QSettingsIniKey(const QString &str, int pos = -1) : QString(str), position(pos) {}
|
||||
inline QSettingsIniKey(const QString &str, qsizetype pos = -1) : QString(str), position(pos) {}
|
||||
|
||||
int position;
|
||||
qsizetype position;
|
||||
};
|
||||
Q_DECLARE_TYPEINFO(QSettingsIniKey, Q_RELOCATABLE_TYPE);
|
||||
|
||||
|
|
@ -1756,7 +1757,7 @@ typedef QMap<QSettingsIniKey, QVariant> IniKeyMap;
|
|||
|
||||
struct QSettingsIniSection
|
||||
{
|
||||
int position;
|
||||
qsizetype position;
|
||||
IniKeyMap keyMap;
|
||||
|
||||
inline QSettingsIniSection() : position(-1) {}
|
||||
|
|
@ -1784,7 +1785,7 @@ bool QConfFileSettingsPrivate::writeIniFile(QIODevice &device, const ParsedSetti
|
|||
for (ParsedSettingsMap::const_iterator j = map.constBegin(); j != map.constEnd(); ++j) {
|
||||
QString section;
|
||||
QSettingsIniKey key(j.key().originalCaseKey(), j.key().originalKeyPosition());
|
||||
int slashPos;
|
||||
qsizetype slashPos;
|
||||
|
||||
if ((slashPos = key.indexOf(u'/')) != -1) {
|
||||
section = key.left(slashPos);
|
||||
|
|
@ -1794,12 +1795,12 @@ bool QConfFileSettingsPrivate::writeIniFile(QIODevice &device, const ParsedSetti
|
|||
QSettingsIniSection &iniSection = iniMap[section];
|
||||
|
||||
// -1 means infinity
|
||||
if (uint(key.position) < uint(iniSection.position))
|
||||
if (size_t(key.position) < size_t(iniSection.position))
|
||||
iniSection.position = key.position;
|
||||
iniSection.keyMap[key] = j.value();
|
||||
}
|
||||
|
||||
const int sectionCount = iniMap.size();
|
||||
const qsizetype sectionCount = iniMap.size();
|
||||
QList<QSettingsIniKey> sections;
|
||||
sections.reserve(sectionCount);
|
||||
for (i = iniMap.constBegin(); i != iniMap.constEnd(); ++i)
|
||||
|
|
@ -1807,7 +1808,7 @@ bool QConfFileSettingsPrivate::writeIniFile(QIODevice &device, const ParsedSetti
|
|||
std::sort(sections.begin(), sections.end());
|
||||
|
||||
bool writeError = false;
|
||||
for (int j = 0; !writeError && j < sectionCount; ++j) {
|
||||
for (qsizetype j = 0; !writeError && j < sectionCount; ++j) {
|
||||
i = iniMap.constFind(sections.at(j));
|
||||
Q_ASSERT(i != iniMap.constEnd());
|
||||
|
||||
|
|
@ -1879,7 +1880,7 @@ void QConfFileSettingsPrivate::ensureSectionParsed(QConfFile *confFile,
|
|||
|
||||
UnparsedSettingsMap::iterator i;
|
||||
|
||||
int indexOfSlash = key.indexOf(u'/');
|
||||
qsizetype indexOfSlash = key.indexOf(u'/');
|
||||
if (indexOfSlash != -1) {
|
||||
i = confFile->unparsedIniSections.upperBound(key);
|
||||
if (i == confFile->unparsedIniSections.begin())
|
||||
|
|
@ -2946,7 +2947,7 @@ void QSettings::endGroup()
|
|||
}
|
||||
|
||||
QSettingsGroup group = d->groupStack.pop();
|
||||
int len = group.toString().size();
|
||||
qsizetype len = group.toString().size();
|
||||
if (len > 0)
|
||||
d->groupPrefix.truncate(d->groupPrefix.size() - (len + 1));
|
||||
|
||||
|
|
@ -3045,7 +3046,7 @@ void QSettings::endArray()
|
|||
}
|
||||
|
||||
QSettingsGroup group = d->groupStack.top();
|
||||
int len = group.toString().size();
|
||||
qsizetype len = group.toString().size();
|
||||
d->groupStack.pop();
|
||||
if (len > 0)
|
||||
d->groupPrefix.truncate(d->groupPrefix.size() - (len + 1));
|
||||
|
|
@ -3074,7 +3075,7 @@ void QSettings::setArrayIndex(int i)
|
|||
}
|
||||
|
||||
QSettingsGroup &top = d->groupStack.top();
|
||||
int len = top.toString().size();
|
||||
qsizetype len = top.toString().size();
|
||||
top.setArrayIndex(qMax(i, 0));
|
||||
d->groupPrefix.replace(d->groupPrefix.size() - len - 1, len, top.toString());
|
||||
}
|
||||
|
|
@ -3507,7 +3508,7 @@ QSettings::Format QSettings::registerFormat(const QString &extension, ReadFunc r
|
|||
|
||||
const auto locker = qt_scoped_lock(settingsGlobalMutex);
|
||||
CustomFormatVector *customFormatVector = customFormatVectorFunc();
|
||||
int index = customFormatVector->size();
|
||||
qsizetype index = customFormatVector->size();
|
||||
if (index == 16) // the QSettings::Format enum has room for 16 custom formats
|
||||
return QSettings::InvalidFormat;
|
||||
|
||||
|
|
@ -3518,7 +3519,7 @@ QSettings::Format QSettings::registerFormat(const QString &extension, ReadFunc r
|
|||
info.caseSensitivity = caseSensitivity;
|
||||
customFormatVector->append(info);
|
||||
|
||||
return QSettings::Format((int)QSettings::CustomFormat1 + index);
|
||||
return QSettings::Format(int(QSettings::CustomFormat1) + index);
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -80,11 +80,11 @@ static const Qt::CaseSensitivity IniCaseSensitivity = Qt::CaseSensitive;
|
|||
class QSettingsKey : public QString
|
||||
{
|
||||
public:
|
||||
inline QSettingsKey(const QString &key, Qt::CaseSensitivity cs, int /* position */ = -1)
|
||||
inline QSettingsKey(const QString &key, Qt::CaseSensitivity cs, qsizetype /* position */ = -1)
|
||||
: QString(key) { Q_ASSERT(cs == Qt::CaseSensitive); Q_UNUSED(cs); }
|
||||
|
||||
inline QString originalCaseKey() const { return *this; }
|
||||
inline int originalKeyPosition() const { return -1; }
|
||||
inline qsizetype originalKeyPosition() const { return -1; }
|
||||
};
|
||||
#else
|
||||
static const Qt::CaseSensitivity IniCaseSensitivity = Qt::CaseInsensitive;
|
||||
|
|
@ -92,7 +92,7 @@ static const Qt::CaseSensitivity IniCaseSensitivity = Qt::CaseInsensitive;
|
|||
class QSettingsKey : public QString
|
||||
{
|
||||
public:
|
||||
inline QSettingsKey(const QString &key, Qt::CaseSensitivity cs, int position = -1)
|
||||
inline QSettingsKey(const QString &key, Qt::CaseSensitivity cs, qsizetype position = -1)
|
||||
: QString(key), theOriginalKey(key), theOriginalKeyPosition(position)
|
||||
{
|
||||
if (cs == Qt::CaseInsensitive)
|
||||
|
|
@ -100,11 +100,11 @@ public:
|
|||
}
|
||||
|
||||
inline QString originalCaseKey() const { return theOriginalKey; }
|
||||
inline int originalKeyPosition() const { return theOriginalKeyPosition; }
|
||||
inline qsizetype originalKeyPosition() const { return theOriginalKeyPosition; }
|
||||
|
||||
private:
|
||||
QString theOriginalKey;
|
||||
int theOriginalKeyPosition;
|
||||
qsizetype theOriginalKeyPosition;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
@ -126,13 +126,13 @@ public:
|
|||
inline QString name() const { return str; }
|
||||
inline QString toString() const;
|
||||
inline bool isArray() const { return num != -1; }
|
||||
inline int arraySizeGuess() const { return maxNum; }
|
||||
inline void setArrayIndex(int i)
|
||||
inline qsizetype arraySizeGuess() const { return maxNum; }
|
||||
inline void setArrayIndex(qsizetype i)
|
||||
{ num = i + 1; if (maxNum != -1 && num > maxNum) maxNum = num; }
|
||||
|
||||
QString str;
|
||||
int num;
|
||||
int maxNum;
|
||||
qsizetype num;
|
||||
qsizetype maxNum;
|
||||
};
|
||||
Q_DECLARE_TYPEINFO(QSettingsGroup, Q_RELOCATABLE_TYPE);
|
||||
|
||||
|
|
@ -236,7 +236,7 @@ public:
|
|||
static void iniEscapedStringList(const QStringList &strs, QByteArray &result);
|
||||
static bool iniUnescapedStringList(QByteArrayView str, QString &stringResult,
|
||||
QStringList &stringListResult);
|
||||
static QStringList splitArgs(const QString &s, int idx);
|
||||
static QStringList splitArgs(const QString &s, qsizetype idx);
|
||||
|
||||
QSettings::Format format;
|
||||
QSettings::Scope scope;
|
||||
|
|
@ -279,8 +279,9 @@ public:
|
|||
bool readIniFile(QByteArrayView data, UnparsedSettingsMap *unparsedIniSections);
|
||||
static bool readIniSection(const QSettingsKey §ion, QByteArrayView data,
|
||||
ParsedSettingsMap *settingsMap);
|
||||
static bool readIniLine(QByteArrayView data, int &dataPos, int &lineStart, int &lineLen,
|
||||
int &equalsPos);
|
||||
static bool readIniLine(QByteArrayView data, qsizetype &dataPos,
|
||||
qsizetype &lineStart, qsizetype &lineLen,
|
||||
qsizetype &equalsPos);
|
||||
|
||||
private:
|
||||
void initFormat();
|
||||
|
|
@ -299,7 +300,7 @@ private:
|
|||
QSettings::WriteFunc writeFunc;
|
||||
QString extension;
|
||||
Qt::CaseSensitivity caseSensitivity;
|
||||
int nextPosition;
|
||||
qsizetype nextPosition;
|
||||
#ifdef Q_OS_WASM
|
||||
friend class QWasmSettingsPrivate;
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue