summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@theqtcompany.com>2015-09-25 10:45:20 +0200
committerChristian Kandeler <christian.kandeler@theqtcompany.com>2015-09-28 07:42:51 +0000
commitd24366a63281543e6c1a8e6b615ce882ea6259ab (patch)
tree5bf5c7a011f1b3c0f1be7a61458b92a1fe81a457
parent1a6ac8319313b6e024305397512513387afcafb8 (diff)
Fix comparisons between QByteArray and QString.
QByteArray::operator< and friends had their logic reversed. Task-number: QTBUG-48350 Change-Id: I625209cc922b47e78dfb8de9fe100411f285a628 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r--src/corelib/tools/qstring.h8
-rw-r--r--tests/auto/corelib/tools/qstring/tst_qstring.cpp16
2 files changed, 20 insertions, 4 deletions
diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h
index 63107ff688..d44a5baf2a 100644
--- a/src/corelib/tools/qstring.h
+++ b/src/corelib/tools/qstring.h
@@ -1228,13 +1228,13 @@ inline bool QByteArray::operator==(const QString &s) const
inline bool QByteArray::operator!=(const QString &s) const
{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) != 0; }
inline bool QByteArray::operator<(const QString &s) const
-{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) < 0; }
-inline bool QByteArray::operator>(const QString &s) const
{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) > 0; }
+inline bool QByteArray::operator>(const QString &s) const
+{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) < 0; }
inline bool QByteArray::operator<=(const QString &s) const
-{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) <= 0; }
-inline bool QByteArray::operator>=(const QString &s) const
{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) >= 0; }
+inline bool QByteArray::operator>=(const QString &s) const
+{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) <= 0; }
#endif // !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
#ifndef QT_NO_CAST_TO_ASCII
diff --git a/tests/auto/corelib/tools/qstring/tst_qstring.cpp b/tests/auto/corelib/tools/qstring/tst_qstring.cpp
index 6d4dbab1fd..0d10a9c5bd 100644
--- a/tests/auto/corelib/tools/qstring/tst_qstring.cpp
+++ b/tests/auto/corelib/tools/qstring/tst_qstring.cpp
@@ -4584,6 +4584,22 @@ void tst_QString::operator_smaller()
QVERIFY(QString("b") >= "a");
QVERIFY(QString("b") > "a");
+ QVERIFY(QString("a") < QByteArray("b"));
+ QVERIFY(QString("a") <= QByteArray("b"));
+ QVERIFY(QString("a") <= QByteArray("a"));
+ QVERIFY(QString("a") == QByteArray("a"));
+ QVERIFY(QString("a") >= QByteArray("a"));
+ QVERIFY(QString("b") >= QByteArray("a"));
+ QVERIFY(QString("b") > QByteArray("a"));
+
+ QVERIFY(QByteArray("a") < QString("b"));
+ QVERIFY(QByteArray("a") <= QString("b"));
+ QVERIFY(QByteArray("a") <= QString("a"));
+ QVERIFY(QByteArray("a") == QString("a"));
+ QVERIFY(QByteArray("a") >= QString("a"));
+ QVERIFY(QByteArray("b") >= QString("a"));
+ QVERIFY(QByteArray("b") > QString("a"));
+
QVERIFY(QLatin1String("a") < QString("b"));
QVERIFY(QLatin1String("a") <= QString("b"));
QVERIFY(QLatin1String("a") <= QString("a"));