diff options
author | Friedrich W. H. Kossebau <kossebau@kde.org> | 2021-11-14 19:26:34 +0100 |
---|---|---|
committer | Friedrich W. H. Kossebau <kossebau@kde.org> | 2021-11-14 19:26:34 +0100 |
commit | c3be6d02f6c061707c6d93e06889a2e56b994d87 (patch) | |
tree | 413f81904db72616b064923c6a6d1fa021675af4 /src/core | |
parent | 473a9137db305ea69cb4b40f23ed679c90c4b475 (diff) | |
download | kconfig-c3be6d02f6c061707c6d93e06889a2e56b994d87.tar.gz kconfig-c3be6d02f6c061707c6d93e06889a2e56b994d87.tar.bz2 |
Avoid some allocations by QString/QByteArray's toLower()
NO_CHANGELOG
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/kauthorized.cpp | 2 | ||||
-rw-r--r-- | src/core/kconfiggroup.cpp | 12 | ||||
-rw-r--r-- | src/core/kcoreconfigskeleton.cpp | 4 |
3 files changed, 10 insertions, 8 deletions
diff --git a/src/core/kauthorized.cpp b/src/core/kauthorized.cpp index aad23949..66a2be23 100644 --- a/src/core/kauthorized.cpp +++ b/src/core/kauthorized.cpp @@ -332,7 +332,7 @@ KCONFIGCORE_EXPORT void loadUrlActionRestrictions(const KConfigGroup &cg) const QString urlProt = rule[4]; const QString urlHost = rule[5]; QString urlPath = rule[6]; - const bool bEnabled = (rule[7].toLower() == QLatin1String("true")); + const bool bEnabled = (rule[7].compare(QLatin1String("true"), Qt::CaseInsensitive) == 0); if (refPath.startsWith(QLatin1String("$HOME"))) { refPath.replace(0, 5, QDir::homePath()); diff --git a/src/core/kconfiggroup.cpp b/src/core/kconfiggroup.cpp index be1f2b0e..24a8ccfd 100644 --- a/src/core/kconfiggroup.cpp +++ b/src/core/kconfiggroup.cpp @@ -26,6 +26,8 @@ #include <QTextStream> #include <QUrl> +#include <algorithm> +#include <array> #include <math.h> #include <stdlib.h> @@ -234,11 +236,11 @@ QVariant KConfigGroup::convertToQVariant(const char *pKey, const QByteArray &val case QMetaType::QByteArray: return value; case QMetaType::Bool: { - const QByteArray lower(value.toLower()); - if (lower == "false" || lower == "no" || lower == "off" || lower == "0") { - return false; - } - return true; + static const std::array<const char *, 4> negatives = {"false", "no", "off", "0"}; + + return std::all_of(negatives.begin(), negatives.end(), [value](const char *negativeString) { + return value.compare(negativeString, Qt::CaseInsensitive) != 0; + }); } case QMetaType::Double: case QMetaType::Float: diff --git a/src/core/kcoreconfigskeleton.cpp b/src/core/kcoreconfigskeleton.cpp index f8097055..030039fc 100644 --- a/src/core/kcoreconfigskeleton.cpp +++ b/src/core/kcoreconfigskeleton.cpp @@ -608,10 +608,10 @@ void KCoreConfigSkeleton::ItemEnum::readConfig(KConfig *config) } else { int i = 0; mReference = -1; - QString tmp = cg.readEntry(mKey, QString()).toLower(); + const QString entryString = cg.readEntry(mKey, QString()); for (auto it = mChoices.cbegin(); it != mChoices.cend(); ++it, ++i) { QString choiceName = (*it).name; - if (valueForChoice(choiceName).toLower() == tmp) { + if (valueForChoice(choiceName).compare(entryString, Qt::CaseInsensitive) == 0) { mReference = i; break; } |