From 245da0762ed3ada744087ad9eb0386f6e0e5ecdd Mon Sep 17 00:00:00 2001 From: Fabian Kosmale Date: Tue, 2 Aug 2022 08:20:17 +0200 Subject: [PATCH] QBindingObserverPtr: add noexcept QVarLengthArray checks for is_nothrow_move_constructible_v, though only uses that information for its own noexceptness. Pick-to: 6.4 Change-Id: I03c81e4da75fbe287d491843716d26e1acac8310 Reviewed-by: Sami Shalayel Reviewed-by: Ulf Hermann Reviewed-by: Qt CI Bot --- src/corelib/kernel/qproperty_p.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/corelib/kernel/qproperty_p.h b/src/corelib/kernel/qproperty_p.h index 50bdfb4abc..aa5c05a9e9 100644 --- a/src/corelib/kernel/qproperty_p.h +++ b/src/corelib/kernel/qproperty_p.h @@ -46,13 +46,13 @@ public: Q_DISABLE_COPY(QBindingObserverPtr); void swap(QBindingObserverPtr &other) noexcept { qt_ptr_swap(d, other.d); } - QBindingObserverPtr(QBindingObserverPtr &&other) : d(std::exchange(other.d, nullptr)) {} + QBindingObserverPtr(QBindingObserverPtr &&other) noexcept : d(std::exchange(other.d, nullptr)) {} QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_MOVE_AND_SWAP(QBindingObserverPtr); - inline QBindingObserverPtr(QPropertyObserver *observer); + inline QBindingObserverPtr(QPropertyObserver *observer) noexcept; inline ~QBindingObserverPtr(); - inline QPropertyBindingPrivate *binding() const; + inline QPropertyBindingPrivate *binding() const noexcept; inline QPropertyObserver *operator ->(); }; @@ -893,7 +893,7 @@ inline QPropertyObserverNodeProtector::~QPropertyObserverNodeProtector() d.unlink_fast(); } -QBindingObserverPtr::QBindingObserverPtr(QPropertyObserver *observer) : d(observer) +QBindingObserverPtr::QBindingObserverPtr(QPropertyObserver *observer) noexcept : d(observer) { Q_ASSERT(d); QPropertyObserverPointer{d}.binding()->addRef(); @@ -901,7 +901,7 @@ QBindingObserverPtr::QBindingObserverPtr(QPropertyObserver *observer) : d(observ QBindingObserverPtr::~QBindingObserverPtr() { if (d) QPropertyObserverPointer{d}.binding()->deref(); } -QPropertyBindingPrivate *QBindingObserverPtr::binding() const { return QPropertyObserverPointer{d}.binding(); } +QPropertyBindingPrivate *QBindingObserverPtr::binding() const noexcept { return QPropertyObserverPointer{d}.binding(); } QPropertyObserver *QBindingObserverPtr::operator->() { return d; }