diff options
Diffstat (limited to 'src/dbus/qdbusmetaobject.cpp')
-rw-r--r-- | src/dbus/qdbusmetaobject.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/dbus/qdbusmetaobject.cpp b/src/dbus/qdbusmetaobject.cpp index 90a50cc600..1026f6429f 100644 --- a/src/dbus/qdbusmetaobject.cpp +++ b/src/dbus/qdbusmetaobject.cpp @@ -422,7 +422,7 @@ void QDBusMetaObjectGenerator::write(QDBusMetaObject *obj) - methods.count(); // ditto QDBusMetaObjectPrivate *header = reinterpret_cast<QDBusMetaObjectPrivate *>(idata.data()); - static_assert(QMetaObjectPrivate::OutputRevision == 9, "QtDBus meta-object generator should generate the same version as moc"); + static_assert(QMetaObjectPrivate::OutputRevision == 10, "QtDBus meta-object generator should generate the same version as moc"); header->revision = QMetaObjectPrivate::OutputRevision; header->className = 0; header->classInfoCount = 0; @@ -459,6 +459,7 @@ void QDBusMetaObjectGenerator::write(QDBusMetaObject *obj) idata[typeidOffset++] = 0; // eod int totalMetaTypeCount = properties.count(); + ++totalMetaTypeCount; // + 1 for metatype of dynamic metaobject for (const auto& methodContainer: {signals_, methods}) { for (const auto& method: methodContainer) { int argc = method.inputTypes.size() + qMax(qsizetype(0), method.outputTypes.size() - 1); @@ -469,7 +470,7 @@ void QDBusMetaObjectGenerator::write(QDBusMetaObject *obj) int propertyId = 0; // add each method: - int currentMethodMetaTypeOffset = properties.count(); + int currentMethodMetaTypeOffset = properties.count() + 1; for (int x = 0; x < 2; ++x) { // Signals must be added before other methods, to match moc. QMap<QByteArray, Method> &map = (x == 0) ? signals_ : methods; @@ -559,6 +560,7 @@ void QDBusMetaObjectGenerator::write(QDBusMetaObject *obj) metaTypes[propertyId++] = QMetaType(mp.type); } + metaTypes[propertyId] = QMetaType(); // we can't know our own metatype Q_ASSERT(offset == header->propertyDBusData); Q_ASSERT(signatureOffset == header->methodDBusData); |