QUrlQuery: fix operator== for emptied object case
If an object had elements and then was emptied, it will have a non-null d pointer, which wasn't taken into account in the comparison. Fixes: QTBUG-109840 Change-Id: I69ecc04064514f939896fffd17376aa18184653c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 3d584b1093cdb6245b02eda996db2927ffaf09ea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
9e8dcaa1e3
commit
81ed4430e4
@ -401,7 +401,11 @@ bool QUrlQuery::operator ==(const QUrlQuery &other) const
|
|||||||
return d->valueDelimiter == other.d->valueDelimiter &&
|
return d->valueDelimiter == other.d->valueDelimiter &&
|
||||||
d->pairDelimiter == other.d->pairDelimiter &&
|
d->pairDelimiter == other.d->pairDelimiter &&
|
||||||
d->itemList == other.d->itemList;
|
d->itemList == other.d->itemList;
|
||||||
return false;
|
|
||||||
|
const QUrlQueryPrivate *x = d ? d.data() : other.d.data();
|
||||||
|
return x->valueDelimiter == defaultQueryValueDelimiter() &&
|
||||||
|
x->pairDelimiter == defaultQueryPairDelimiter() &&
|
||||||
|
x->itemList.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -210,12 +210,14 @@ void tst_QUrlQuery::constructing()
|
|||||||
void tst_QUrlQuery::addRemove()
|
void tst_QUrlQuery::addRemove()
|
||||||
{
|
{
|
||||||
QUrlQuery query;
|
QUrlQuery query;
|
||||||
|
QCOMPARE(query, query);
|
||||||
|
|
||||||
{
|
{
|
||||||
// one item
|
// one item
|
||||||
query.addQueryItem("a", "b");
|
query.addQueryItem("a", "b");
|
||||||
QVERIFY(!query.isEmpty());
|
QVERIFY(!query.isEmpty());
|
||||||
QVERIFY(query.hasQueryItem("a"));
|
QVERIFY(query.hasQueryItem("a"));
|
||||||
|
QCOMPARE_NE(query, QUrlQuery());
|
||||||
QCOMPARE(query.queryItemValue("a"), QString("b"));
|
QCOMPARE(query.queryItemValue("a"), QString("b"));
|
||||||
QCOMPARE(query.allQueryItemValues("a"), QStringList() << "b");
|
QCOMPARE(query.allQueryItemValues("a"), QStringList() << "b");
|
||||||
|
|
||||||
@ -226,6 +228,7 @@ void tst_QUrlQuery::addRemove()
|
|||||||
}
|
}
|
||||||
|
|
||||||
QUrlQuery original = query;
|
QUrlQuery original = query;
|
||||||
|
QCOMPARE(query, original);
|
||||||
|
|
||||||
{
|
{
|
||||||
// two items
|
// two items
|
||||||
@ -298,6 +301,9 @@ void tst_QUrlQuery::addRemove()
|
|||||||
query.removeQueryItem("a");
|
query.removeQueryItem("a");
|
||||||
query.removeQueryItem("e");
|
query.removeQueryItem("e");
|
||||||
QVERIFY(query.isEmpty());
|
QVERIFY(query.isEmpty());
|
||||||
|
QVERIFY(query.isDetached());
|
||||||
|
QCOMPARE_NE(query, original);
|
||||||
|
QCOMPARE(query, QUrlQuery());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user