diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2012-01-27 12:14:12 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-27 13:24:10 +0100 |
commit | a067baebe8d57b5270a99db4da7a96424ce2ad1f (patch) | |
tree | 32d20f273b066193e1b42680e36cd9949c2df896 /src/serviceframework/ipc/qservicemetaobject_dbus.cpp | |
parent | 5155aba393895076be21cfd0d9f4076a20926e49 (diff) |
Fix breakages due to recent meta-type system changes
Several qserviceframework_ipc tests were failing due to the handling
of QVariant arguments. QVariant is now a "standard" meta-type
(QMetaType::QVariant), with an id less than QMetaType::User.
Adapt the serviceframework code accordingly.
Avoid calling QVariant::nameToType(); QMetaType::type() always gives
the necessary information.
Change-Id: I3f58ebcebe5c5d16f035b6c793e72b28c7aa723b
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Andrew Stanley-Jones <andrew.stanley-jones@nokia.com>
Diffstat (limited to 'src/serviceframework/ipc/qservicemetaobject_dbus.cpp')
-rw-r--r-- | src/serviceframework/ipc/qservicemetaobject_dbus.cpp | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/src/serviceframework/ipc/qservicemetaobject_dbus.cpp b/src/serviceframework/ipc/qservicemetaobject_dbus.cpp index 67e796c1..34127804 100644 --- a/src/serviceframework/ipc/qservicemetaobject_dbus.cpp +++ b/src/serviceframework/ipc/qservicemetaobject_dbus.cpp @@ -135,8 +135,8 @@ void QServiceMetaObjectDBus::connectMetaSignals(bool signalsObject) { // Detects custom types as passed arguments for (int arg = 0; arg < pTypesCount; arg++) { const QByteArray& type = pTypes[arg]; - int variantType = QVariant::nameToType(type); - if (variantType == QVariant::UserType) { + int variantType = QMetaType::type(type); + if (variantType >= QMetaType::User || variantType == QMetaType::QVariant) { sig.replace(QByteArray(type), QByteArray("QDBusVariant")); customType = true; } @@ -174,11 +174,9 @@ void QServiceMetaObjectDBus::activateMetaSignal(int id, const QVariantList& args // Convert custom types const QByteArray& type = params[i]; - int variantType = QVariant::nameToType(type); - if (variantType == QVariant::UserType) { - variantType = QMetaType::type(type); - - if (variantType >= QMetaType::User) { + int variantType = QMetaType::type(type); + if (variantType >= QMetaType::User || variantType == QMetaType::QVariant) { + if (variantType != QMetaType::QVariant) { // Wrap custom types in a QDBusVariant of the type name and // a buffer of its variant-wrapped data QByteArray buffer; @@ -239,8 +237,8 @@ const QMetaObject* QServiceMetaObjectDBus::dbusMetaObject(bool signalsObject) co // Convert QVariant and custom return types to QDBusVariants QByteArray ret(mm.typeName()); const QByteArray& type = mm.typeName(); - int variantType = QVariant::nameToType(type); - if (variantType == QVariant::UserType) { + int variantType = QMetaType::type(type); + if (variantType >= QMetaType::User || variantType == QMetaType::QVariant) { ret = QByteArray("QDBusVariant"); } @@ -250,8 +248,8 @@ const QMetaObject* QServiceMetaObjectDBus::dbusMetaObject(bool signalsObject) co const int pTypesCount = pTypes.count(); for (int i=0; i < pTypesCount; i++) { const QByteArray& type = pTypes[i]; - int variantType = QVariant::nameToType(type); - if (variantType == QVariant::UserType) { + int variantType = QMetaType::type(type); + if (variantType >= QMetaType::User || variantType == QMetaType::QVariant) { sig.replace(QByteArray(type), QByteArray("QDBusVariant")); } } @@ -381,10 +379,7 @@ int QServiceMetaObjectDBus::qt_metacall(QMetaObject::Call c, int id, void **a) const int xTypesCount = xTypes.count(); for (int i=0; i < xTypesCount; i++) { const QByteArray& t = xTypes[i]; - int variantType = QVariant::nameToType(t); - if (variantType == QVariant::UserType) { - variantType = QMetaType::type(t); - } + int variantType = QMetaType::type(t); // Check for QVariants or custom types, represented as QDBusVariants if (t == "QDBusVariant") { @@ -436,10 +431,7 @@ int QServiceMetaObjectDBus::qt_metacall(QMetaObject::Call c, int id, void **a) // Process arguments for (int i=0; i < pTypesCount; i++) { const QByteArray& t = pTypes[i]; - int variantType = QVariant::nameToType(t); - if (variantType == QVariant::UserType) { - variantType = QMetaType::type(t); - } + int variantType = QMetaType::type(t); if (variantType >= QMetaType::User) { // Custom argument @@ -465,8 +457,7 @@ int QServiceMetaObjectDBus::qt_metacall(QMetaObject::Call c, int id, void **a) // Check for custom return types and make the metacall const QByteArray& type = mm.typeName(); - int retType = QVariant::nameToType(type); - retType = QMetaType::type(type); + int retType = QMetaType::type(type); if (retType >= QMetaType::User) { // Invoke the object method directly for custom return types bool result = false; |