summaryrefslogtreecommitdiffstats
path: root/src/dbus
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-03-20 19:45:00 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-20 22:23:13 +0100
commit3e1e0b41a81b7c3e4140264dcaede7ab8a51bf77 (patch)
treecbcdec27eec13d6b1cba2fa2dc6f8eb29dbe5a55 /src/dbus
parent83e055424af8331eafd744ea33dfe8a4ecdaf1e6 (diff)
Use the new QMetaMethod API in QtDBus
Use QMetaMethod::name() instead of parsing the signature. Use QMetaMethod::returnType() instead of resolving the type id via the type name. Change-Id: If5d0198c5f1329fd9d9340acd58bd4a36933d960 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/dbus')
-rw-r--r--src/dbus/qdbusabstractinterface.cpp4
-rw-r--r--src/dbus/qdbusintegrator.cpp9
-rw-r--r--src/dbus/qdbusinterface.cpp2
-rw-r--r--src/dbus/qdbusxmlgenerator.cpp10
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();