diff options
Diffstat (limited to 'src/dbus')
-rw-r--r-- | src/dbus/qdbusabstractinterface.h | 6 | ||||
-rw-r--r-- | src/dbus/qdbusargument_p.h | 3 | ||||
-rw-r--r-- | src/dbus/qdbusconnection_p.h | 4 | ||||
-rw-r--r-- | src/dbus/qdbusconnectioninterface.h | 4 | ||||
-rw-r--r-- | src/dbus/qdbusintegrator.cpp | 2 | ||||
-rw-r--r-- | src/dbus/qdbusintegrator_p.h | 4 | ||||
-rw-r--r-- | src/dbus/qdbusinterface.h | 6 | ||||
-rw-r--r-- | src/dbus/qdbusmarshaller.cpp | 87 | ||||
-rw-r--r-- | src/dbus/qdbusmetaobject.cpp | 14 |
9 files changed, 70 insertions, 60 deletions
diff --git a/src/dbus/qdbusabstractinterface.h b/src/dbus/qdbusabstractinterface.h index e01cfad36b..7ad0048246 100644 --- a/src/dbus/qdbusabstractinterface.h +++ b/src/dbus/qdbusabstractinterface.h @@ -56,7 +56,7 @@ class QDBusAbstractInterfacePrivate; class Q_DBUS_EXPORT QDBusAbstractInterfaceBase: public QObject { public: - int qt_metacall(QMetaObject::Call, int, void**); + int qt_metacall(QMetaObject::Call, int, void**) Q_DECL_OVERRIDE; protected: QDBusAbstractInterfaceBase(QDBusAbstractInterfacePrivate &dd, QObject *parent); private: @@ -136,8 +136,8 @@ protected: const QDBusConnection &connection, QObject *parent); QDBusAbstractInterface(QDBusAbstractInterfacePrivate &, QObject *parent); - void connectNotify(const QMetaMethod &signal); - void disconnectNotify(const QMetaMethod &signal); + void connectNotify(const QMetaMethod &signal) Q_DECL_OVERRIDE; + void disconnectNotify(const QMetaMethod &signal) Q_DECL_OVERRIDE; QVariant internalPropGet(const char *propname) const; void internalPropSet(const char *propname, const QVariant &value); QDBusMessage internalConstCall(QDBus::CallMode mode, diff --git a/src/dbus/qdbusargument_p.h b/src/dbus/qdbusargument_p.h index 12039307e1..5f8c13c2c5 100644 --- a/src/dbus/qdbusargument_p.h +++ b/src/dbus/qdbusargument_p.h @@ -97,7 +97,7 @@ public: class QDBusMarshaller: public QDBusArgumentPrivate { public: - QDBusMarshaller(int flags) : QDBusArgumentPrivate(flags), parent(0), ba(0), closeCode(0), ok(true) + QDBusMarshaller(int flags) : QDBusArgumentPrivate(flags), parent(0), ba(0), closeCode(0), ok(true), skipSignature(false) { direction = Marshalling; } ~QDBusMarshaller(); @@ -145,6 +145,7 @@ public: QString errorString; char closeCode; bool ok; + bool skipSignature; private: Q_DISABLE_COPY(QDBusMarshaller) diff --git a/src/dbus/qdbusconnection_p.h b/src/dbus/qdbusconnection_p.h index 00c3aced0e..dc83ee9af5 100644 --- a/src/dbus/qdbusconnection_p.h +++ b/src/dbus/qdbusconnection_p.h @@ -253,8 +253,8 @@ private: QString getNameOwnerNoCache(const QString &service); protected: - void customEvent(QEvent *e); - void timerEvent(QTimerEvent *e); + void customEvent(QEvent *e) Q_DECL_OVERRIDE; + void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE; public slots: // public slots diff --git a/src/dbus/qdbusconnectioninterface.h b/src/dbus/qdbusconnectioninterface.h index ed267ecc79..a6b18b7dc1 100644 --- a/src/dbus/qdbusconnectioninterface.h +++ b/src/dbus/qdbusconnectioninterface.h @@ -106,8 +106,8 @@ Q_SIGNALS: void NameLost(const QString &); void NameOwnerChanged(const QString &, const QString &, const QString &); protected: - void connectNotify(const QMetaMethod &); - void disconnectNotify(const QMetaMethod &); + void connectNotify(const QMetaMethod &) Q_DECL_OVERRIDE; + void disconnectNotify(const QMetaMethod &) Q_DECL_OVERRIDE; #endif }; diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp index dd92602dce..1978e259fd 100644 --- a/src/dbus/qdbusintegrator.cpp +++ b/src/dbus/qdbusintegrator.cpp @@ -1022,7 +1022,7 @@ QDBusConnectionPrivate::QDBusConnectionPrivate(QObject *p) { static const bool threads = q_dbus_threads_init_default(); if (::isDebugging == -1) - ::isDebugging = qgetenv("QDBUS_DEBUG").toInt(); + ::isDebugging = qEnvironmentVariableIntValue("QDBUS_DEBUG"); Q_UNUSED(threads) #ifdef QDBUS_THREAD_DEBUG diff --git a/src/dbus/qdbusintegrator_p.h b/src/dbus/qdbusintegrator_p.h index 38aad9fa86..116d77cca6 100644 --- a/src/dbus/qdbusintegrator_p.h +++ b/src/dbus/qdbusintegrator_p.h @@ -90,7 +90,7 @@ public: : QMetaCallEvent(0, id, 0, sender, -1), connection(c), message(msg), metaTypes(types), flags(f) { } - void placeMetaCall(QObject *object) + void placeMetaCall(QObject *object) Q_DECL_OVERRIDE { QDBusConnectionPrivate::d(connection)->deliverCall(object, flags, message, metaTypes, id()); } @@ -113,7 +113,7 @@ public: { } ~QDBusActivateObjectEvent(); - void placeMetaCall(QObject *); + void placeMetaCall(QObject *) Q_DECL_OVERRIDE; private: QDBusConnection connection; // just for refcounting diff --git a/src/dbus/qdbusinterface.h b/src/dbus/qdbusinterface.h index 04adaced88..8e6fe02f1f 100644 --- a/src/dbus/qdbusinterface.h +++ b/src/dbus/qdbusinterface.h @@ -55,9 +55,9 @@ public: QObject *parent = 0); ~QDBusInterface(); - virtual const QMetaObject *metaObject() const; - virtual void *qt_metacast(const char *); - virtual int qt_metacall(QMetaObject::Call, int, void **); + virtual const QMetaObject *metaObject() const Q_DECL_OVERRIDE; + virtual void *qt_metacast(const char *) Q_DECL_OVERRIDE; + virtual int qt_metacall(QMetaObject::Call, int, void **) Q_DECL_OVERRIDE; private: Q_DECLARE_PRIVATE(QDBusInterface) diff --git a/src/dbus/qdbusmarshaller.cpp b/src/dbus/qdbusmarshaller.cpp index 0e21e2f282..60b6db6aa6 100644 --- a/src/dbus/qdbusmarshaller.cpp +++ b/src/dbus/qdbusmarshaller.cpp @@ -62,55 +62,65 @@ inline QString QDBusMarshaller::currentSignature() inline void QDBusMarshaller::append(uchar arg) { - qIterAppend(&iterator, ba, DBUS_TYPE_BYTE, &arg); + if (!skipSignature) + qIterAppend(&iterator, ba, DBUS_TYPE_BYTE, &arg); } inline void QDBusMarshaller::append(bool arg) { dbus_bool_t cast = arg; - qIterAppend(&iterator, ba, DBUS_TYPE_BOOLEAN, &cast); + if (!skipSignature) + qIterAppend(&iterator, ba, DBUS_TYPE_BOOLEAN, &cast); } inline void QDBusMarshaller::append(short arg) { - qIterAppend(&iterator, ba, DBUS_TYPE_INT16, &arg); + if (!skipSignature) + qIterAppend(&iterator, ba, DBUS_TYPE_INT16, &arg); } inline void QDBusMarshaller::append(ushort arg) { - qIterAppend(&iterator, ba, DBUS_TYPE_UINT16, &arg); + if (!skipSignature) + qIterAppend(&iterator, ba, DBUS_TYPE_UINT16, &arg); } inline void QDBusMarshaller::append(int arg) { - qIterAppend(&iterator, ba, DBUS_TYPE_INT32, &arg); + if (!skipSignature) + qIterAppend(&iterator, ba, DBUS_TYPE_INT32, &arg); } inline void QDBusMarshaller::append(uint arg) { - qIterAppend(&iterator, ba, DBUS_TYPE_UINT32, &arg); + if (!skipSignature) + qIterAppend(&iterator, ba, DBUS_TYPE_UINT32, &arg); } inline void QDBusMarshaller::append(qlonglong arg) { - qIterAppend(&iterator, ba, DBUS_TYPE_INT64, &arg); + if (!skipSignature) + qIterAppend(&iterator, ba, DBUS_TYPE_INT64, &arg); } inline void QDBusMarshaller::append(qulonglong arg) { - qIterAppend(&iterator, ba, DBUS_TYPE_UINT64, &arg); + if (!skipSignature) + qIterAppend(&iterator, ba, DBUS_TYPE_UINT64, &arg); } inline void QDBusMarshaller::append(double arg) { - qIterAppend(&iterator, ba, DBUS_TYPE_DOUBLE, &arg); + if (!skipSignature) + qIterAppend(&iterator, ba, DBUS_TYPE_DOUBLE, &arg); } void QDBusMarshaller::append(const QString &arg) { QByteArray data = arg.toUtf8(); const char *cdata = data.constData(); - qIterAppend(&iterator, ba, DBUS_TYPE_STRING, &cdata); + if (!skipSignature) + qIterAppend(&iterator, ba, DBUS_TYPE_STRING, &cdata); } inline void QDBusMarshaller::append(const QDBusObjectPath &arg) @@ -120,7 +130,8 @@ inline void QDBusMarshaller::append(const QDBusObjectPath &arg) error(QLatin1String("Invalid object path passed in arguments")); } else { const char *cdata = data.constData(); - qIterAppend(&iterator, ba, DBUS_TYPE_OBJECT_PATH, &cdata); + if (!skipSignature) + qIterAppend(&iterator, ba, DBUS_TYPE_OBJECT_PATH, &cdata); } } @@ -131,7 +142,8 @@ inline void QDBusMarshaller::append(const QDBusSignature &arg) error(QLatin1String("Invalid signature passed in arguments")); } else { const char *cdata = data.constData(); - qIterAppend(&iterator, ba, DBUS_TYPE_SIGNATURE, &cdata); + if (!skipSignature) + qIterAppend(&iterator, ba, DBUS_TYPE_SIGNATURE, &cdata); } } @@ -141,14 +153,16 @@ inline void QDBusMarshaller::append(const QDBusUnixFileDescriptor &arg) if (!ba && fd == -1) { error(QLatin1String("Invalid file descriptor passed in arguments")); } else { - qIterAppend(&iterator, ba, DBUS_TYPE_UNIX_FD, &fd); + if (!skipSignature) + qIterAppend(&iterator, ba, DBUS_TYPE_UNIX_FD, &fd); } } inline void QDBusMarshaller::append(const QByteArray &arg) { if (ba) { - *ba += DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_BYTE_AS_STRING; + if (!skipSignature) + *ba += DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_BYTE_AS_STRING; return; } @@ -163,7 +177,8 @@ inline void QDBusMarshaller::append(const QByteArray &arg) inline bool QDBusMarshaller::append(const QDBusVariant &arg) { if (ba) { - *ba += DBUS_TYPE_VARIANT_AS_STRING; + if (!skipSignature) + *ba += DBUS_TYPE_VARIANT_AS_STRING; return true; } @@ -206,7 +221,8 @@ inline bool QDBusMarshaller::append(const QDBusVariant &arg) inline void QDBusMarshaller::append(const QStringList &arg) { if (ba) { - *ba += DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_STRING_AS_STRING; + if (!skipSignature) + *ba += DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_STRING_AS_STRING; return; } @@ -288,25 +304,30 @@ void QDBusMarshaller::open(QDBusMarshaller &sub, int code, const char *signature sub.ba = ba; sub.ok = true; sub.capabilities = capabilities; + sub.skipSignature = skipSignature; - if (ba) - switch (code) { - case DBUS_TYPE_ARRAY: - *ba += char(code); - *ba += signature; - // fall through - - case DBUS_TYPE_DICT_ENTRY: - sub.closeCode = 0; - break; - - case DBUS_TYPE_STRUCT: - *ba += DBUS_STRUCT_BEGIN_CHAR; - sub.closeCode = DBUS_STRUCT_END_CHAR; - break; + if (ba) { + if (!skipSignature) { + switch (code) { + case DBUS_TYPE_ARRAY: + *ba += char(code); + *ba += signature; + // fall through + + case DBUS_TYPE_DICT_ENTRY: + sub.closeCode = 0; + sub.skipSignature = true; + break; + + case DBUS_TYPE_STRUCT: + *ba += DBUS_STRUCT_BEGIN_CHAR; + sub.closeCode = DBUS_STRUCT_END_CHAR; + break; + } } - else + } else { q_dbus_message_iter_open_container(&iterator, code, signature, &sub.iterator); + } } QDBusMarshaller *QDBusMarshaller::beginCommon(int code, const char *signature) @@ -338,7 +359,7 @@ QDBusMarshaller *QDBusMarshaller::endCommon() void QDBusMarshaller::close() { if (ba) { - if (closeCode) + if (!skipSignature && closeCode) *ba += closeCode; } else if (parent) { q_dbus_message_iter_close_container(&parent->iterator, &iterator); diff --git a/src/dbus/qdbusmetaobject.cpp b/src/dbus/qdbusmetaobject.cpp index 9f07817df0..1fe5428f06 100644 --- a/src/dbus/qdbusmetaobject.cpp +++ b/src/dbus/qdbusmetaobject.cpp @@ -123,17 +123,6 @@ QDBusMetaObjectGenerator::QDBusMetaObjectGenerator(const QString &interfaceName, static int registerComplexDBusType(const char *typeName) { struct QDBusRawTypeHandler { - static void destroy(void *) - { - qFatal("Cannot destroy placeholder type QDBusRawType"); - } - - static void *create(const void *) - { - qFatal("Cannot create placeholder type QDBusRawType"); - return 0; - } - static void destruct(void *) { qFatal("Cannot destruct placeholder type QDBusRawType"); @@ -146,8 +135,7 @@ static int registerComplexDBusType(const char *typeName) } }; - return QMetaType::registerNormalizedType(typeName, QDBusRawTypeHandler::destroy, - QDBusRawTypeHandler::create, + return QMetaType::registerNormalizedType(typeName, QDBusRawTypeHandler::destruct, QDBusRawTypeHandler::construct, sizeof(void *), |