From 77646f668da94ebc7afa683527181c5e3ba3c8b0 Mon Sep 17 00:00:00 2001 From: Fabian Kosmale Date: Tue, 20 Sep 2022 15:37:09 +0200 Subject: Q(Basic)Atomic: remove QT_BASIC_ATOMIC_HAS_CONSTRUCTORS The define has always been set, so we can simplify all the code that checked for it. Change-Id: I9133ba95dbd6e1da465ade1d1306310bd3fb9a45 Reviewed-by: Thiago Macieira Reviewed-by: Qt CI Bot --- src/corelib/thread/qatomic.h | 32 ++------------------------------ src/corelib/thread/qbasicatomic.h | 6 ------ 2 files changed, 2 insertions(+), 36 deletions(-) (limited to 'src/corelib/thread') diff --git a/src/corelib/thread/qatomic.h b/src/corelib/thread/qatomic.h index b11e3f1bdf..e0e9ca947c 100644 --- a/src/corelib/thread/qatomic.h +++ b/src/corelib/thread/qatomic.h @@ -14,29 +14,16 @@ QT_BEGIN_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_GCC("-Wextra") -#ifdef Q_CLANG_QDOC -# undef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS -#endif - // High-level atomic integer operations template class QAtomicInteger : public QBasicAtomicInteger { public: // Non-atomic API -#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS constexpr QAtomicInteger(T value = 0) noexcept : QBasicAtomicInteger(value) {} -#else - inline QAtomicInteger(T value = 0) noexcept - { - this->_q_value = value; - } -#endif inline QAtomicInteger(const QAtomicInteger &other) noexcept -#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS : QBasicAtomicInteger() -#endif { this->storeRelease(other.loadAcquire()); } @@ -129,10 +116,7 @@ public: // Non-atomic API // We could use QT_COMPILER_INHERITING_CONSTRUCTORS, but we need only one; // the implicit definition for all the others is fine. -#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS - constexpr -#endif - QAtomicInt(int value = 0) noexcept : QAtomicInteger(value) {} + constexpr QAtomicInt(int value = 0) noexcept : QAtomicInteger(value) {} }; // High-level atomic pointer operations @@ -140,18 +124,10 @@ template class QAtomicPointer : public QBasicAtomicPointer { public: -#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS constexpr QAtomicPointer(T *value = nullptr) noexcept : QBasicAtomicPointer(value) {} -#else - inline QAtomicPointer(T *value = nullptr) noexcept - { - this->storeRelaxed(value); - } -#endif + inline QAtomicPointer(const QAtomicPointer &other) noexcept -#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS : QBasicAtomicPointer() -#endif { this->storeRelease(other.loadAcquire()); } @@ -196,10 +172,6 @@ public: QT_WARNING_POP -#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS -# undef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS -#endif - /*! This is a helper for the assignment operators of implicitly shared classes. Your assignment operator should look like this: diff --git a/src/corelib/thread/qbasicatomic.h b/src/corelib/thread/qbasicatomic.h index 6a33a1fb26..93f9648a14 100644 --- a/src/corelib/thread/qbasicatomic.h +++ b/src/corelib/thread/qbasicatomic.h @@ -23,8 +23,6 @@ QT_END_NAMESPACE // New atomics -#define QT_BASIC_ATOMIC_HAS_CONSTRUCTORS - template class QBasicAtomicInteger { @@ -155,13 +153,11 @@ public: { return fetchAndXorOrdered(v) ^ v; } -#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS QBasicAtomicInteger() = default; constexpr QBasicAtomicInteger(T value) noexcept : _q_value(value) {} QBasicAtomicInteger(const QBasicAtomicInteger &) = delete; QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) = delete; QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) volatile = delete; -#endif }; typedef QBasicAtomicInteger QBasicAtomicInt; @@ -252,13 +248,11 @@ public: Type operator-=(qptrdiff valueToSub) noexcept { return fetchAndSubOrdered(valueToSub) - valueToSub; } -#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS QBasicAtomicPointer() = default; constexpr QBasicAtomicPointer(Type value) noexcept : _q_value(value) {} QBasicAtomicPointer(const QBasicAtomicPointer &) = delete; QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) = delete; QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) volatile = delete; -#endif }; #ifndef Q_BASIC_ATOMIC_INITIALIZER -- cgit v1.2.3