diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2022-03-21 15:08:00 +0100 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2022-03-30 21:37:24 +0200 |
commit | b4d003c77f947111b809c9f7c836a221f3981ba2 (patch) | |
tree | 87d03a924924f6158b691158b22aa92f7372f867 /src/corelib | |
parent | 8e4ef10c388c4ec611b8fce0217b70a88028c342 (diff) |
Prefer sliced()/first()/chopped() to mid() and arithmetic
The newer methods bypass checking and make it clearer what's
happening. They're also available on QBAV, unlike mid().
Change-Id: Ie0375888b889e393b91814ba80529d1a7227eb7f
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/io/qsettings.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp index d1a6647eb6..52f54d12f4 100644 --- a/src/corelib/io/qsettings.cpp +++ b/src/corelib/io/qsettings.cpp @@ -496,9 +496,9 @@ QVariant QSettingsPrivate::stringToVariant(const QString &s) if (s.startsWith(u'@')) { if (s.endsWith(u')')) { if (s.startsWith("@ByteArray("_L1)) { - return QVariant(QStringView{s}.mid(11, s.size() - 12).toLatin1()); + return QVariant(QStringView{s}.sliced(11).chopped(1).toLatin1()); } else if (s.startsWith("@String("_L1)) { - return QVariant(QStringView{s}.mid(8, s.size() - 9).toString()); + return QVariant(QStringView{s}.sliced(8).chopped(1).toString()); } else if (s.startsWith("@Variant("_L1) || s.startsWith("@DateTime("_L1)) { #ifndef QT_NO_DATASTREAM @@ -511,7 +511,7 @@ QVariant QSettingsPrivate::stringToVariant(const QString &s) version = QDataStream::Qt_4_0; offset = 9; } - QByteArray a = QStringView{s}.mid(offset).toLatin1(); + QByteArray a = QStringView{s}.sliced(offset).toLatin1(); QDataStream stream(&a, QIODevice::ReadOnly); stream.setVersion(version); QVariant result; @@ -540,7 +540,7 @@ QVariant QSettingsPrivate::stringToVariant(const QString &s) } if (s.startsWith("@@"_L1)) - return QVariant(s.mid(1)); + return QVariant(s.sliced(1)); } return QVariant(s); @@ -575,7 +575,7 @@ void QSettingsPrivate::iniEscapedKey(const QString &key, QByteArray &result) bool QSettingsPrivate::iniUnescapedKey(const QByteArray &key, int from, int to, QString &result) { - const QString decoded = QString::fromUtf8(QByteArrayView(key).sliced(from, to - from)); + const QString decoded = QString::fromUtf8(QByteArrayView(key).first(to).sliced(from)); const qsizetype size = decoded.size(); result.reserve(result.length() + size); qsizetype i = 0; @@ -1280,14 +1280,14 @@ QStringList QConfFileSettingsPrivate::children(const QString &prefix, ChildSpec &confFile->originalKeys)->lowerBound( thePrefix); while (j != confFile->originalKeys.constEnd() && j.key().startsWith(thePrefix)) { if (!confFile->removedKeys.contains(j.key())) - processChild(QStringView{j.key().originalCaseKey()}.mid(startPos), spec, result); + processChild(QStringView{j.key().originalCaseKey()}.sliced(startPos), spec, result); ++j; } j = const_cast<const ParsedSettingsMap *>( &confFile->addedKeys)->lowerBound(thePrefix); while (j != confFile->addedKeys.constEnd() && j.key().startsWith(thePrefix)) { - processChild(QStringView{j.key().originalCaseKey()}.mid(startPos), spec, result); + processChild(QStringView{j.key().originalCaseKey()}.sliced(startPos), spec, result); ++j; } @@ -1616,7 +1616,7 @@ bool QConfFileSettingsPrivate::readIniFile(const QByteArray &data, sectionPosition)]; \ if (!sectionData.isEmpty()) \ sectionData.append('\n'); \ - sectionData += data.mid(currentSectionStart, lineStart - currentSectionStart); \ + sectionData += data.first(lineStart).sliced(currentSectionStart); \ sectionPosition = ++position; \ } |