From 2889ebc9032b06fef812edc2a44d2e1e4e1edcc6 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 15 Aug 2016 15:05:17 +0200 Subject: [PATCH] QSharedPointer: clean up #ifdefs We require Q_COMPILER_RVALUE_REFS and _VARIADIC_TEMPLATES since Qt 5.7, so remove the non-variadic version which anyway has zero test coverage. Also drop #include , as that is included from qglobal.h already, and drop QSKIP from test. Change-Id: I1fc7f7068eac80ad6fd85e1d8f6d33c5c7bb67db Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/corelib/tools/qsharedpointer_impl.h | 48 ------------------- .../qsharedpointer/tst_qsharedpointer.cpp | 6 --- 2 files changed, 54 deletions(-) diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h index 7ce12bc244..a0c22c9179 100644 --- a/src/corelib/tools/qsharedpointer_impl.h +++ b/src/corelib/tools/qsharedpointer_impl.h @@ -67,10 +67,6 @@ QT_END_NAMESPACE #endif #include -#if defined(Q_COMPILER_RVALUE_REFS) && defined(Q_COMPILER_VARIADIC_TEMPLATES) -# include // for std::forward -#endif - QT_BEGIN_NAMESPACE @@ -428,7 +424,6 @@ public: QWeakPointer toWeakRef() const; -#if defined(Q_COMPILER_RVALUE_REFS) && defined(Q_COMPILER_VARIADIC_TEMPLATES) template static QSharedPointer create(Args && ...arguments) { @@ -450,49 +445,6 @@ public: result.enableSharedFromThis(result.data()); return result; } -#else - static inline QSharedPointer create() - { - typedef QtSharedPointer::ExternalRefCountWithContiguousData Private; -# ifdef QT_SHAREDPOINTER_TRACK_POINTERS - typename Private::DestroyerFn destroy = &Private::safetyCheckDeleter; -# else - typename Private::DestroyerFn destroy = &Private::deleter; -# endif - QSharedPointer result(Qt::Uninitialized); - result.d = Private::create(&result.value, destroy); - - // now initialize the data - new (result.data()) T(); -# ifdef QT_SHAREDPOINTER_TRACK_POINTERS - internalSafetyCheckAdd(result.d, result.value); -# endif - result.d->setQObjectShared(result.value, true); - result.enableSharedFromThis(result.data()); - return result; - } - - template - static inline QSharedPointer create(const Arg &arg) - { - typedef QtSharedPointer::ExternalRefCountWithContiguousData Private; -# ifdef QT_SHAREDPOINTER_TRACK_POINTERS - typename Private::DestroyerFn destroy = &Private::safetyCheckDeleter; -# else - typename Private::DestroyerFn destroy = &Private::deleter; -# endif - QSharedPointer result(Qt::Uninitialized); - result.d = Private::create(&result.value, destroy); - - // now initialize the data - new (result.data()) T(arg); -# ifdef QT_SHAREDPOINTER_TRACK_POINTERS - internalSafetyCheckAdd(result.d, result.value); -# endif - result.d->setQObjectShared(result.value, true); - return result; - } -#endif private: explicit QSharedPointer(Qt::Initialization) {} diff --git a/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp b/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp index 1bba41816b..d0a0feb125 100644 --- a/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp +++ b/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp @@ -1738,9 +1738,6 @@ void tst_QSharedPointer::creating() void tst_QSharedPointer::creatingVariadic() { -#if !defined(Q_COMPILER_RVALUE_REFS) || !defined(Q_COMPILER_VARIADIC_TEMPLATES) - QSKIP("This compiler is not in C++11 mode or it doesn't support rvalue refs and variadic templates"); -#else int i = 42; { @@ -1768,12 +1765,10 @@ void tst_QSharedPointer::creatingVariadic() QCOMPARE(ptr->i, 2); QCOMPARE(ptr->ptr, (void*)0); -#ifdef Q_COMPILER_NULLPTR NoDefaultConstructor2(nullptr, 3); // control check ptr = QSharedPointer::create(nullptr, 3); QCOMPARE(ptr->i, 3); QCOMPARE(ptr->ptr, (void*)nullptr); -#endif } { NoDefaultConstructorRef1 x(i); // control check @@ -1809,7 +1804,6 @@ void tst_QSharedPointer::creatingVariadic() QCOMPARE(ptr->str, QString("bytearray")); QCOMPARE(ptr->i, 42); } -#endif } void tst_QSharedPointer::creatingQObject()