diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2023-06-21 14:01:13 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2023-06-23 21:23:13 +0200 |
commit | 5eb00f3f7ffebc77d9da53a00c8346ced4bf0635 (patch) | |
tree | 7778164f0c9430cacffa57bf1a737cb549c87b15 | |
parent | 29f3bbb0622f2449741b45e002a059850993561c (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.cpp | 9 | ||||
-rw-r--r-- | src/qml/qml/qqmlvaluetypewrapper_p.h | 14 |
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(); |