diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2019-12-05 16:14:14 +0100 |
---|---|---|
committer | Olivier Goffart <ogoffart@woboq.com> | 2020-02-25 15:43:15 +0100 |
commit | 46f407126ef3e94d59254012cdc34d6a4ad2faf2 (patch) | |
tree | 56444e40c2342e69d4aac99d0c44b207d8516c93 /src/dbus | |
parent | a68e4f3b96a82a93898f381e8ddc7f50f9c89d40 (diff) |
MetaObject: store the QMetaType of the properties
Change-Id: I563e7232b70e94de4184f2c23a581319313dcf5c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/dbus')
-rw-r--r-- | src/dbus/qdbusmetaobject.cpp | 6 | ||||
-rw-r--r-- | src/dbus/qdbusmetaobject_p.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/dbus/qdbusmetaobject.cpp b/src/dbus/qdbusmetaobject.cpp index bfda2aa9b6..dcbed5a6f8 100644 --- a/src/dbus/qdbusmetaobject.cpp +++ b/src/dbus/qdbusmetaobject.cpp @@ -521,6 +521,9 @@ void QDBusMetaObjectGenerator::write(QDBusMetaObject *obj) offset += methodParametersDataSize; Q_ASSERT(offset == header->propertyData); + QMetaType *metaTypes = new QMetaType[properties.count()]; + int propertyId = 0; + // add each property signatureOffset = header->propertyDBusData; for (QMap<QByteArray, Property>::ConstIterator it = properties.constBegin(); @@ -535,6 +538,8 @@ void QDBusMetaObjectGenerator::write(QDBusMetaObject *obj) idata[signatureOffset++] = strings.enter(mp.signature); idata[signatureOffset++] = mp.type; + + metaTypes[propertyId++] = QMetaType(mp.type); } Q_ASSERT(offset == header->propertyDBusData); @@ -553,6 +558,7 @@ void QDBusMetaObjectGenerator::write(QDBusMetaObject *obj) obj->d.extradata = nullptr; obj->d.stringdata = reinterpret_cast<const uint *>(string_data); obj->d.superdata = &QDBusAbstractInterface::staticMetaObject; + obj->d.metaTypes = reinterpret_cast<QtPrivate::QMetaTypeInterface *const *>(metaTypes); } #if 0 diff --git a/src/dbus/qdbusmetaobject_p.h b/src/dbus/qdbusmetaobject_p.h index 89fccf9046..a4ed3c355c 100644 --- a/src/dbus/qdbusmetaobject_p.h +++ b/src/dbus/qdbusmetaobject_p.h @@ -77,6 +77,7 @@ struct Q_DBUS_EXPORT QDBusMetaObject: public QMetaObject { delete [] reinterpret_cast<const char *>(d.stringdata); delete [] d.data; + delete [] reinterpret_cast<const QMetaType *>(d.metaTypes); } // methods (slots & signals): |