diff options
-rw-r--r-- | src/dbus/qdbusabstractinterface.cpp | 4 | ||||
-rw-r--r-- | src/dbus/qdbusintegrator.cpp | 9 | ||||
-rw-r--r-- | src/dbus/qdbusinterface.cpp | 2 | ||||
-rw-r--r-- | src/dbus/qdbusxmlgenerator.cpp | 10 |
4 files changed, 10 insertions, 15 deletions
diff --git a/src/dbus/qdbusabstractinterface.cpp b/src/dbus/qdbusabstractinterface.cpp index 941f322315..79c607e6b4 100644 --- a/src/dbus/qdbusabstractinterface.cpp +++ b/src/dbus/qdbusabstractinterface.cpp @@ -442,11 +442,11 @@ QDBusMessage QDBusAbstractInterface::callWithArgumentList(QDBus::CallMode mode, // determine if this a sync or async call mode = QDBus::Block; const QMetaObject *mo = metaObject(); - QByteArray match = m.toLatin1() + '('; + QByteArray match = m.toLatin1(); for (int i = staticMetaObject.methodCount(); i < mo->methodCount(); ++i) { QMetaMethod mm = mo->method(i); - if (mm.methodSignature().startsWith(match)) { + if (mm.name() == match) { // found a method with the same name as what we're looking for // hopefully, nobody is overloading asynchronous and synchronous methods with // the same name diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp index acb83e274a..c36c1efb71 100644 --- a/src/dbus/qdbusintegrator.cpp +++ b/src/dbus/qdbusintegrator.cpp @@ -640,12 +640,10 @@ static int findSlot(const QMetaObject *mo, const QByteArray &name, int flags, continue; // check name: - QByteArray slotname = mm.methodSignature(); - int paren = slotname.indexOf('('); - if (paren != name.length() || !slotname.startsWith(name)) + if (mm.name() != name) continue; - int returnType = QMetaType::type(mm.typeName()); + int returnType = mm.returnType(); bool isAsync = qDBusCheckAsyncTag(mm.tag()); bool isScriptable = mm.attributes() & QMetaMethod::Scriptable; @@ -1188,8 +1186,7 @@ void QDBusConnectionPrivate::relaySignal(QObject *obj, const QMetaObject *mo, in QString interface = qDBusInterfaceFromMetaObject(mo); QMetaMethod mm = mo->method(signalId); - QByteArray memberName = mm.methodSignature(); - memberName.truncate(memberName.indexOf('(')); + QByteArray memberName = mm.name(); // check if it's scriptable bool isScriptable = mm.attributes() & QMetaMethod::Scriptable; diff --git a/src/dbus/qdbusinterface.cpp b/src/dbus/qdbusinterface.cpp index b336396f3b..f6a84b9980 100644 --- a/src/dbus/qdbusinterface.cpp +++ b/src/dbus/qdbusinterface.cpp @@ -300,7 +300,7 @@ int QDBusInterfacePrivate::metacall(QMetaObject::Call c, int id, void **argv) const int *outputTypes = metaObject->outputTypesForMethod(id); int outputTypesCount = *outputTypes++; - if (*mm.typeName()) { + if (mm.returnType() != QMetaType::UnknownType && mm.returnType() != QMetaType::Void) { // this method has a return type if (argv[0] && it != args.constEnd()) copyArgument(argv[0], *outputTypes++, *it); diff --git a/src/dbus/qdbusxmlgenerator.cpp b/src/dbus/qdbusxmlgenerator.cpp index 550c82a0f2..a158600f42 100644 --- a/src/dbus/qdbusxmlgenerator.cpp +++ b/src/dbus/qdbusxmlgenerator.cpp @@ -126,8 +126,6 @@ static QString generateInterfaceXml(const QMetaObject *mo, int flags, int method // now add methods: for (int i = methodOffset; i < mo->methodCount(); ++i) { QMetaMethod mm = mo->method(i); - QByteArray signature = mm.methodSignature(); - int paren = signature.indexOf('('); bool isSignal; if (mm.methodType() == QMetaMethod::Signal) @@ -147,11 +145,11 @@ static QString generateInterfaceXml(const QMetaObject *mo, int flags, int method QString xml = QString::fromLatin1(" <%1 name=\"%2\">\n") .arg(isSignal ? QLatin1String("signal") : QLatin1String("method")) - .arg(QLatin1String(signature.left(paren))); + .arg(QString::fromLatin1(mm.name())); // check the return type first - int typeId = QMetaType::type(mm.typeName()); - if (typeId) { + int typeId = mm.returnType(); + if (typeId != QMetaType::UnknownType && typeId != QMetaType::Void) { const char *typeName = QDBusMetaType::typeToSignature(typeId); if (typeName) { xml += QString::fromLatin1(" <arg type=\"%1\" direction=\"out\"/>\n") @@ -164,7 +162,7 @@ static QString generateInterfaceXml(const QMetaObject *mo, int flags, int method } else continue; } - else if (*mm.typeName()) + else if (typeId == QMetaType::UnknownType) continue; // wasn't a valid type QList<QByteArray> names = mm.parameterNames(); |