diff options
Diffstat (limited to 'src/corelib/kernel/qpointer.h')
| -rw-r--r-- | src/corelib/kernel/qpointer.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/corelib/kernel/qpointer.h b/src/corelib/kernel/qpointer.h index ada4445d43..66088054ef 100644 --- a/src/corelib/kernel/qpointer.h +++ b/src/corelib/kernel/qpointer.h @@ -33,9 +33,11 @@ public: // compiler-generated dtor is fine! template <typename X, if_convertible<X> = true> - QPointer(QPointer<X> &&other) noexcept : wp(std::move(other.wp)) {} + QPointer(QPointer<X> &&other) noexcept + : wp(std::exchange(other.wp, nullptr).internalData(), true) {} template <typename X, if_convertible<X> = true> - QPointer(const QPointer<X> &other) noexcept : wp(other.wp) {} + QPointer(const QPointer<X> &other) noexcept + : wp(other.wp.internalData(), true) {} #ifdef Q_QDOC // Stop qdoc from complaining about missing function |
