From e40320c552a9ccd4c1879a4da13c8d909b2cd21e Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Thu, 16 Jul 2020 17:14:30 +0200 Subject: [PATCH] QWeakPointer: purge deprecated API Since 5.0: assignment/construction from QObject pointer Since 5.14: data() to recover the packaged pointer Change-Id: I5d6ab561ce39bc0d9d3e5035eb2ca38139cd76b6 Reviewed-by: Thiago Macieira --- src/corelib/tools/qsharedpointer_impl.h | 23 -- .../kernel/qmetatype/tst_qmetatype.cpp | 7 - .../corelib/kernel/qvariant/tst_qvariant.cpp | 12 -- .../qsharedpointer/tst_qsharedpointer.cpp | 196 ------------------ 4 files changed, 238 deletions(-) diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h index 35058a1c6eb..30bccb66a4e 100644 --- a/src/corelib/tools/qsharedpointer_impl.h +++ b/src/corelib/tools/qsharedpointer_impl.h @@ -63,9 +63,6 @@ QT_END_NAMESPACE #include #include #include // for qobject_cast -#if QT_DEPRECATED_SINCE(5, 6) -#include -#endif #include #include @@ -555,29 +552,9 @@ public: explicit operator bool() const noexcept { return !isNull(); } bool operator !() const noexcept { return isNull(); } -#if QT_DEPRECATED_SINCE(5, 14) - QT_DEPRECATED_X("Use toStrongRef() instead, and data() on the returned QSharedPointer") - T *data() const noexcept { return internalData(); } -#endif - inline QWeakPointer() noexcept : d(nullptr), value(nullptr) { } inline ~QWeakPointer() { if (d && !d->weakref.deref()) delete d; } -#ifndef QT_NO_QOBJECT - // special constructor that is enabled only if X derives from QObject -#if QT_DEPRECATED_SINCE(5, 0) - template = true> - QT_DEPRECATED inline QWeakPointer(X *ptr) : d(ptr ? Data::getAndRef(ptr) : nullptr), value(ptr) - { } -#endif -#endif - -#if QT_DEPRECATED_SINCE(5, 0) - template = true> - QT_DEPRECATED inline QWeakPointer &operator=(X *ptr) - { return *this = QWeakPointer(ptr); } -#endif - QWeakPointer(const QWeakPointer &other) noexcept : d(other.d), value(other.value) { if (d) d->weakref.ref(); } QWeakPointer(QWeakPointer &&other) noexcept diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp index e97dacea5fe..ba8c42f22fc 100644 --- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp +++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp @@ -1938,13 +1938,6 @@ void tst_QMetaType::automaticTemplateRegistration() QCOMPARE(extractedPtr.data()->objectName(), sp.data()->objectName()); \ } -#if QT_DEPRECATED_SINCE(5, 0) - TEST_NONOWNING_SMARTPOINTER(QWeakPointer, QObject, WeakPointerToQObject, qWeakPointerFromVariant) - TEST_NONOWNING_SMARTPOINTER(QWeakPointer, QFile, WeakPointerToQObject, qWeakPointerFromVariant) - TEST_NONOWNING_SMARTPOINTER(QWeakPointer, QTemporaryFile, WeakPointerToQObject, qWeakPointerFromVariant) - TEST_NONOWNING_SMARTPOINTER(QWeakPointer, MyObject, WeakPointerToQObject, qWeakPointerFromVariant) -#endif - TEST_NONOWNING_SMARTPOINTER(QPointer, QObject, TrackingPointerToQObject, qPointerFromVariant) TEST_NONOWNING_SMARTPOINTER(QPointer, QFile, TrackingPointerToQObject, qPointerFromVariant) TEST_NONOWNING_SMARTPOINTER(QPointer, QTemporaryFile, TrackingPointerToQObject, qPointerFromVariant) diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp index 5fa06c4f463..48d68db2988 100644 --- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp +++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp @@ -2487,18 +2487,6 @@ void tst_QVariant::qvariant_cast_QObject_wrapper() QVERIFY(spVar.canConvert()); QCOMPARE(f, spVar.value()); } -#if QT_DEPRECATED_SINCE(5, 0) - { - QFile *f = new QFile(this); -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED - QWeakPointer sp(f); -QT_WARNING_POP - QVariant spVar = QVariant::fromValue(sp); - QVERIFY(spVar.canConvert()); - QCOMPARE(f, spVar.value()); - } -#endif { QFile *f = new QFile(this); QSharedPointer sp(f); diff --git a/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp b/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp index 95c2c2bb708..4ca79405568 100644 --- a/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp +++ b/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp @@ -77,10 +77,6 @@ private slots: void functionCallDownCast(); void upCast(); void qobjectWeakManagement(); -#if QT_DEPRECATED_SINCE(5, 0) - void noSharedPointerFromWeakQObject(); - void sharedPointerFromQObjectWithWeak(); -#endif void weakQObjectFromSharedPointer(); void objectCast(); void objectCastStdSharedPtr(); @@ -956,156 +952,10 @@ void tst_QSharedPointer::qobjectWeakManagement() QVERIFY(weak.isNull()); } safetyCheck(); - -#if QT_DEPRECATED_SINCE(5, 0) - { - QWeakPointer weak; - weak = QWeakPointer(); - QVERIFY(weak.isNull()); - QVERIFY(!weak.data()); - } - - { - QObject *obj = new QObject; - QWeakPointer weak(obj); - QVERIFY(!weak.isNull()); - QVERIFY(weak.data() == obj); - - // now delete - delete obj; - QVERIFY(weak.isNull()); - } - safetyCheck(); - - { - // same, bit with operator= - QObject *obj = new QObject; - QWeakPointer weak; - weak = obj; - QVERIFY(!weak.isNull()); - QVERIFY(weak.data() == obj); - - // now delete - delete obj; - QVERIFY(weak.isNull()); - } - safetyCheck(); - - { - // delete triggered by parent - QObject *obj, *parent; - parent = new QObject; - obj = new QObject(parent); - QWeakPointer weak(obj); - - // now delete the parent - delete parent; - QVERIFY(weak.isNull()); - } - safetyCheck(); - - { - // same as above, but set the parent after QWeakPointer is created - QObject *obj, *parent; - obj = new QObject; - QWeakPointer weak(obj); - - parent = new QObject; - obj->setParent(parent); - - // now delete the parent - delete parent; - QVERIFY(weak.isNull()); - } - safetyCheck(); - - { - // with two QWeakPointers - QObject *obj = new QObject; - QWeakPointer weak(obj); - - { - QWeakPointer weak2(obj); - QVERIFY(!weak2.isNull()); - QVERIFY(weak == weak2); - } - QVERIFY(!weak.isNull()); - - delete obj; - QVERIFY(weak.isNull()); - } - safetyCheck(); - - { - // same, but delete the pointer while two QWeakPointers exist - QObject *obj = new QObject; - QWeakPointer weak(obj); - - { - QWeakPointer weak2(obj); - QVERIFY(!weak2.isNull()); - - delete obj; - QVERIFY(weak.isNull()); - QVERIFY(weak2.isNull()); - } - QVERIFY(weak.isNull()); - } - safetyCheck(); -#endif } -#if QT_DEPRECATED_SINCE(5, 0) -void tst_QSharedPointer::noSharedPointerFromWeakQObject() -{ - // you're not allowed to create a QSharedPointer from an unmanaged QObject - QObject obj; - QWeakPointer weak(&obj); - - { - QTest::ignoreMessage(QtWarningMsg , "QSharedPointer: cannot create a QSharedPointer from a QObject-tracking QWeakPointer"); - QSharedPointer strong = weak.toStrongRef(); - QVERIFY(strong.isNull()); - } - { - QTest::ignoreMessage(QtWarningMsg , "QSharedPointer: cannot create a QSharedPointer from a QObject-tracking QWeakPointer"); - QSharedPointer strong = weak; - QVERIFY(strong.isNull()); - } - - QCOMPARE(weak.data(), &obj); - // if something went wrong, we'll probably crash here -} - -void tst_QSharedPointer::sharedPointerFromQObjectWithWeak() -{ - QObject *ptr = new QObject; - QWeakPointer weak = ptr; - { - QSharedPointer shared(ptr); - QVERIFY(!weak.isNull()); - QCOMPARE(shared.data(), ptr); - QCOMPARE(weak.data(), ptr); - } - QVERIFY(weak.isNull()); -} -#endif - void tst_QSharedPointer::weakQObjectFromSharedPointer() { -#if QT_DEPRECATED_SINCE(5, 0) - { - // this is the inverse of the above: you're allowed to create a QWeakPointer - // from a managed QObject - QSharedPointer shared(new QObject); - QWeakPointer weak = shared.data(); - QVERIFY(!weak.isNull()); - - // delete: - shared.clear(); - QVERIFY(weak.isNull()); - } -#endif { QSharedPointer shared(new QObject); QWeakPointer weak = shared; @@ -2507,52 +2357,6 @@ void tst_QSharedPointer::qvariantCast() } // Intentionally does not compile. // QSharedPointer sop = qSharedPointerFromVariant(v); - -#if QT_DEPRECATED_SINCE(5, 0) - v = QVariant::fromValue(sp.toWeakRef()); - - { - QWeakPointer other = qWeakPointerFromVariant(v); - QCOMPARE(other.data()->objectName(), QString::fromLatin1("A test name")); - } - { - QWeakPointer other = qWeakPointerFromVariant(v); - QCOMPARE(other.data()->objectName(), QString::fromLatin1("A test name")); - } - { - QWeakPointer other = qWeakPointerFromVariant(v); - QCOMPARE(other.data()->objectName(), QString::fromLatin1("A test name")); - } - { - QWeakPointer other = qWeakPointerFromVariant(v); - QVERIFY(!other); - } - - // Intentionally does not compile. -// QWeakPointer sop = qWeakPointerFromVariant(v); - - QFile file; - QWeakPointer tracking = &file; - tracking.data()->setObjectName("A test name"); - v = QVariant::fromValue(tracking); - - { - QWeakPointer other = qWeakPointerFromVariant(v); - QCOMPARE(other.data()->objectName(), QString::fromLatin1("A test name")); - } - { - QWeakPointer other = qWeakPointerFromVariant(v); - QCOMPARE(other.data()->objectName(), QString::fromLatin1("A test name")); - } - { - QWeakPointer other = qWeakPointerFromVariant(v); - QCOMPARE(other.data()->objectName(), QString::fromLatin1("A test name")); - } - { - QWeakPointer other = qWeakPointerFromVariant(v); - QVERIFY(!other); - } -#endif } class SomeClass : public QEnableSharedFromThis