From f69144471bd2e6a6b92f57e7727f28af9386d846 Mon Sep 17 00:00:00 2001 From: Fawzi Mohamed Date: Fri, 11 Sep 2020 15:08:26 +0200 Subject: Allow getting a const pointer out of a variant containing pointer Currently A a; QVariant::fromValue(&a).value() == nullptr; Still casting non const to const is safe, and worked in Qt5. After this change A a; QVariant::fromValue(&a).value() == &a; Change-Id: I257049d084c712b00a338a2943d379aa478e0981 Reviewed-by: Fabian Kosmale --- tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp') diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp index 251bb803b4..8df3b4055b 100644 --- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp +++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp @@ -169,6 +169,7 @@ private slots: void qvariant_cast_QObject_derived(); void qvariant_cast_QObject_wrapper(); void qvariant_cast_QSharedPointerQObject(); + void qvariant_cast_const(); void toLocale(); @@ -2579,6 +2580,17 @@ void tst_QVariant::qvariant_cast_QSharedPointerQObject() qRegisterMetaType >(); } +void tst_QVariant::qvariant_cast_const() +{ + int i = 42; + QVariant v = QVariant::fromValue(&i); + QVariant vConst = QVariant::fromValue(const_cast(&i)); + QCOMPARE(v.value(), &i); + QCOMPARE(v.value(), &i); + QCOMPARE(vConst.value(), nullptr); + QCOMPARE(vConst.value(), &i); +} + void tst_QVariant::convertToQUint8() const { /* qint8. */ -- cgit v1.2.3