summaryrefslogtreecommitdiffstats
path: root/src/serviceframework/ipc/qservicemetaobject_dbus.cpp
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-01-27 12:14:12 +0100
committerQt by Nokia <qt-info@nokia.com>2012-01-27 13:24:10 +0100
commita067baebe8d57b5270a99db4da7a96424ce2ad1f (patch)
tree32d20f273b066193e1b42680e36cd9949c2df896 /src/serviceframework/ipc/qservicemetaobject_dbus.cpp
parent5155aba393895076be21cfd0d9f4076a20926e49 (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.cpp33
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;