aboutsummaryrefslogtreecommitdiff
path: root/src/core/kconfiggroup.cpp
diff options
context:
space:
mode:
authorFriedrich W. H. Kossebau <kossebau@kde.org>2021-11-14 19:26:34 +0100
committerFriedrich W. H. Kossebau <kossebau@kde.org>2021-11-14 19:26:34 +0100
commitc3be6d02f6c061707c6d93e06889a2e56b994d87 (patch)
tree413f81904db72616b064923c6a6d1fa021675af4 /src/core/kconfiggroup.cpp
parent473a9137db305ea69cb4b40f23ed679c90c4b475 (diff)
downloadkconfig-c3be6d02f6c061707c6d93e06889a2e56b994d87.tar.gz
kconfig-c3be6d02f6c061707c6d93e06889a2e56b994d87.tar.bz2
Avoid some allocations by QString/QByteArray's toLower()
NO_CHANGELOG
Diffstat (limited to 'src/core/kconfiggroup.cpp')
-rw-r--r--src/core/kconfiggroup.cpp12
1 files changed, 7 insertions, 5 deletions
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: