aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2023-06-21 14:01:13 +0200
committerUlf Hermann <ulf.hermann@qt.io>2023-06-23 21:23:13 +0200
commit5eb00f3f7ffebc77d9da53a00c8346ced4bf0635 (patch)
tree7778164f0c9430cacffa57bf1a737cb549c87b15
parent29f3bbb0622f2449741b45e002a059850993561c (diff)
QQmlValueTypeWrapper: Move setData method inline
That's a rather common thing to do. Change-Id: I259848b9be5e2a578b0fc1c5f4c6f0f61bd3b723 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
-rw-r--r--src/qml/qml/qqmlvaluetypewrapper.cpp9
-rw-r--r--src/qml/qml/qqmlvaluetypewrapper_p.h14
2 files changed, 13 insertions, 10 deletions
diff --git a/src/qml/qml/qqmlvaluetypewrapper.cpp b/src/qml/qml/qqmlvaluetypewrapper.cpp
index 08af9d7635..da3c2bfe2c 100644
--- a/src/qml/qml/qqmlvaluetypewrapper.cpp
+++ b/src/qml/qml/qqmlvaluetypewrapper.cpp
@@ -58,15 +58,6 @@ void Heap::QQmlValueTypeWrapper::destroy()
ReferenceObject::destroy();
}
-void Heap::QQmlValueTypeWrapper::setData(const void *data)
-{
- if (auto *gadget = gadgetPtr())
- metaType().destruct(gadget);
- if (!gadgetPtr())
- setGadgetPtr(::operator new(metaType().sizeOf()));
- metaType().construct(gadgetPtr(), data);
-}
-
QVariant Heap::QQmlValueTypeWrapper::toVariant() const
{
Q_ASSERT(gadgetPtr());
diff --git a/src/qml/qml/qqmlvaluetypewrapper_p.h b/src/qml/qml/qqmlvaluetypewrapper_p.h
index a100fc6519..df173e6325 100644
--- a/src/qml/qml/qqmlvaluetypewrapper_p.h
+++ b/src/qml/qml/qqmlvaluetypewrapper_p.h
@@ -67,7 +67,19 @@ DECLARE_HEAP_OBJECT(QQmlValueTypeWrapper, ReferenceObject) {
const QMetaObject *metaObject() const { return m_metaObject; }
- void setData(const void *data);
+ void setData(const void *data)
+ {
+ const QMetaType type = metaType();
+ void *gadget = gadgetPtr();
+ if (gadget) {
+ type.destruct(gadget);
+ } else {
+ gadget = ::operator new(type.sizeOf());
+ setGadgetPtr(gadget);
+ }
+ type.construct(gadget, data);
+ }
+
QVariant toVariant() const;
void *storagePointer();