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>
This commit is contained in:
parent
426b5fbce4
commit
b6d04c8a82
@ -3806,6 +3806,16 @@ bool QMetaProperty::writeOnGadget(void *gadget, const QVariant &value) const
|
|||||||
return write(reinterpret_cast<QObject*>(gadget), value);
|
return write(reinterpret_cast<QObject*>(gadget), value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\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
|
\since 5.5
|
||||||
|
|
||||||
|
@ -370,6 +370,7 @@ public:
|
|||||||
|
|
||||||
QVariant readOnGadget(const void *gadget) const;
|
QVariant readOnGadget(const void *gadget) const;
|
||||||
bool writeOnGadget(void *gadget, const QVariant &value) const;
|
bool writeOnGadget(void *gadget, const QVariant &value) const;
|
||||||
|
bool writeOnGadget(void *gadget, QVariant &&value) const;
|
||||||
bool resetOnGadget(void *gadget) const;
|
bool resetOnGadget(void *gadget) const;
|
||||||
|
|
||||||
bool hasStdCppSet() const;
|
bool hasStdCppSet() const;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user