summaryrefslogtreecommitdiff
path: root/src/corelib/kernel/qpointer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/kernel/qpointer.h')
-rw-r--r--src/corelib/kernel/qpointer.h6
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