summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qmetaobject.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2023-05-02 09:26:59 +0200
committerMarc Mutz <marc.mutz@qt.io>2023-05-02 14:51:01 +0200
commitb6d04c8a823ab8486d72ca6dd72ab3007a6627a7 (patch)
treecfbf07a9df1c36df4b7acef4500d96654c71ad46 /src/corelib/kernel/qmetaobject.cpp
parent426b5fbce437128a10055ebfdc4431e6a2ab312c (diff)
QMetaProperty: add writeOnGadget() overload taking rvalue QVariant
The writeOnGadget() function is implemented in terms of write() (UB, btw, due to the cast to QObject*), which was recently overloaded for rvalue QVariants. Add a corresponding writeOnGadget() overload, too. [ChangeLog][QtCore][QMetaProperty] Added writeOnGadget() overload taking an rvalue QVariant. Amends 968250ee1444d3eabf3d805053f46015bc7185c5. Task-number: QTBUG-112762 Change-Id: I7fc686fcab293159f5a0d76dd6c8e23d5779c96c Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/corelib/kernel/qmetaobject.cpp')
-rw-r--r--src/corelib/kernel/qmetaobject.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp
index 5a75993ca3..ec3e6a1916 100644
--- a/src/corelib/kernel/qmetaobject.cpp
+++ b/src/corelib/kernel/qmetaobject.cpp
@@ -3807,6 +3807,16 @@ bool QMetaProperty::writeOnGadget(void *gadget, const QVariant &value) const
}
/*!
+ \overload
+ \since 6.6
+*/
+bool QMetaProperty::writeOnGadget(void *gadget, QVariant &&value) const
+{
+ Q_ASSERT(priv(mobj->d.data)->flags & PropertyAccessInStaticMetaCall && mobj->d.static_metacall);
+ return write(reinterpret_cast<QObject*>(gadget), std::move(value));
+}
+
+/*!
\since 5.5
Resets the property for the given \a gadget with a reset method.