From fec08545ff0b4fb2ce68a7d7502273a599472141 Mon Sep 17 00:00:00 2001 From: Anton Kudryavtsev Date: Tue, 18 Oct 2016 17:44:54 +0300 Subject: QVariant: optimize convert() for bool case Do not create QByteArray from const char* to compare with other QByteArray, because there is an overloaded operator==. So avoid needless allocations. Reorder condition, because isEmpty() method is cheaper than string compare. Change-Id: I8d2c8a0fb247528d9ce485007431167372d62bff Reviewed-by: Edward Welbourne --- src/corelib/kernel/qvariant.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp index ccfa7d0d38..0ffc22d810 100644 --- a/src/corelib/kernel/qvariant.cpp +++ b/src/corelib/kernel/qvariant.cpp @@ -319,7 +319,7 @@ template inline bool qt_convertToBool(const QVariant::Private *const d) { TInput str = v_cast(d)->toLower(); - return !(str == LiteralWrapper("0") || str == LiteralWrapper("false") || str.isEmpty()); + return !(str.isEmpty() || str == LiteralWrapper("0") || str == LiteralWrapper("false")); } /*! @@ -700,7 +700,7 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok) bool *b = static_cast(result); switch(d->type) { case QVariant::ByteArray: - *b = qt_convertToBool(d); + *b = qt_convertToBool(d); break; case QVariant::String: *b = qt_convertToBool(d); -- cgit v1.2.3