diff options
Diffstat (limited to 'src/dbus/qdbusabstractadaptor.cpp')
-rw-r--r-- | src/dbus/qdbusabstractadaptor.cpp | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/src/dbus/qdbusabstractadaptor.cpp b/src/dbus/qdbusabstractadaptor.cpp index a53ba41683..806a1b5f1f 100644 --- a/src/dbus/qdbusabstractadaptor.cpp +++ b/src/dbus/qdbusabstractadaptor.cpp @@ -8,7 +8,6 @@ #include <QtCore/qcoreapplication.h> #include <QtCore/qmetaobject.h> #include <QtCore/qset.h> -#include <QtCore/qtimer.h> #include <QtCore/qthread.h> #include "qdbusconnection.h" @@ -22,14 +21,10 @@ QT_BEGIN_NAMESPACE -static int cachedRelaySlotMethodIndex = 0; - int QDBusAdaptorConnector::relaySlotMethodIndex() { - if (cachedRelaySlotMethodIndex == 0) { - cachedRelaySlotMethodIndex = staticMetaObject.indexOfMethod("relaySlot()"); - Q_ASSERT(cachedRelaySlotMethodIndex != 0); // 0 should be deleteLater() or destroyed() - } + static const int cachedRelaySlotMethodIndex = staticMetaObject.indexOfMethod("relaySlot()"); + Q_ASSERT(cachedRelaySlotMethodIndex != 0); // 0 should be deleteLater() or destroyed() return cachedRelaySlotMethodIndex; } @@ -37,11 +32,9 @@ QDBusAdaptorConnector *qDBusFindAdaptorConnector(QObject *obj) { if (!obj) return nullptr; - const QObjectList &children = obj->children(); - QObjectList::ConstIterator it = children.constBegin(); - QObjectList::ConstIterator end = children.constEnd(); - for ( ; it != end; ++it) { - QDBusAdaptorConnector *connector = qobject_cast<QDBusAdaptorConnector *>(*it); + + for (QObject *child : std::as_const(obj->children())) { + QDBusAdaptorConnector *connector = qobject_cast<QDBusAdaptorConnector *>(child); if (connector) { connector->polish(); return connector; @@ -110,10 +103,13 @@ void QDBusAbstractAdaptorPrivate::saveIntrospectionXml(QDBusAbstractAdaptor *ada QDBusAbstractAdaptor::QDBusAbstractAdaptor(QObject* obj) : QObject(*new QDBusAbstractAdaptorPrivate, obj) { + + Q_ASSERT_X(obj, Q_FUNC_INFO, "Expected non-null parent"); + QDBusAdaptorConnector *connector = qDBusCreateAdaptorConnector(obj); connector->waitingForPolish = true; - QMetaObject::invokeMethod(connector, "polish", Qt::QueuedConnection); + QMetaObject::invokeMethod(connector, &QDBusAdaptorConnector::polish, Qt::QueuedConnection); } /*! @@ -227,11 +223,8 @@ void QDBusAdaptorConnector::polish() return; // avoid working multiple times if multiple adaptors were added waitingForPolish = false; - const QObjectList &objs = parent()->children(); - QObjectList::ConstIterator it = objs.constBegin(); - QObjectList::ConstIterator end = objs.constEnd(); - for ( ; it != end; ++it) { - QDBusAbstractAdaptor *adaptor = qobject_cast<QDBusAbstractAdaptor *>(*it); + for (QObject *child : std::as_const(parent()->children())) { + QDBusAbstractAdaptor *adaptor = qobject_cast<QDBusAbstractAdaptor *>(child); if (adaptor) addAdaptor(adaptor); } @@ -260,8 +253,8 @@ void QDBusAdaptorConnector::relay(QObject *senderObj, int lastSignalIdx, void ** // QObject signal (destroyed(QObject *)) -- ignore return; - const QMetaObject *senderMetaObject = senderObj->metaObject(); - QMetaMethod mm = senderMetaObject->method(lastSignalIdx); + QMetaMethod mm = senderObj->metaObject()->method(lastSignalIdx); + const QMetaObject *senderMetaObject = mm.enclosingMetaObject(); QObject *realObject = senderObj; if (qobject_cast<QDBusAbstractAdaptor *>(senderObj)) |