diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2015-06-24 01:41:19 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2015-07-10 12:21:02 +0000 |
commit | 32a5026f36018e124acd0794847d8fed3e27ed40 (patch) | |
tree | a0b8ea3e775eff3b5b86376c8079a3693e80ef21 /src/dbus | |
parent | 6094ae1ff5da7f6f317d0212f19c6304179e1ada (diff) |
QtDBus: replace some inefficient QLists with QVector
QDBusIntrospection::Argument and the QPair are larger than a void*, so holding
them in QLists is needlessly inefficient. Worse, the code could come to depend
on the fragile property of (inefficient) QLists that references to elements
therein never are invalidated.
Fix by marking the types movable, if not already done, and holding them in
QVector instead.
Change-Id: I1cf88287cc3a1d87e1fcd5061ed8d6d19d2f0722
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/dbus')
-rw-r--r-- | src/dbus/qdbusconnection_p.h | 2 | ||||
-rw-r--r-- | src/dbus/qdbusintrospection_p.h | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/dbus/qdbusconnection_p.h b/src/dbus/qdbusconnection_p.h index 5d8777c622..752ca9c37a 100644 --- a/src/dbus/qdbusconnection_p.h +++ b/src/dbus/qdbusconnection_p.h @@ -166,7 +166,7 @@ public: // typedefs typedef QMultiHash<int, Watcher> WatcherHash; typedef QHash<int, DBusTimeout *> TimeoutHash; - typedef QList<QPair<DBusTimeout *, int> > PendingTimeoutList; + typedef QVector<QPair<DBusTimeout *, int> > PendingTimeoutList; typedef QMultiHash<QString, SignalHook> SignalHookHash; typedef QHash<QString, QDBusMetaObject* > MetaObjectHash; diff --git a/src/dbus/qdbusintrospection_p.h b/src/dbus/qdbusintrospection_p.h index ce3be00733..572a39b140 100644 --- a/src/dbus/qdbusintrospection_p.h +++ b/src/dbus/qdbusintrospection_p.h @@ -46,7 +46,7 @@ // #include <QtCore/qstring.h> -#include <QtCore/qlist.h> +#include <QtCore/qvector.h> #include <QtCore/qstringlist.h> #include <QtCore/qmap.h> #include <QtCore/qpair.h> @@ -71,7 +71,7 @@ public: // typedefs typedef QMap<QString, QString> Annotations; - typedef QList<Argument> Arguments; + typedef QVector<Argument> Arguments; typedef QMultiMap<QString, Method> Methods; typedef QMultiMap<QString, Signal> Signals; typedef QMap<QString, Property> Properties; @@ -158,6 +158,7 @@ public: private: QDBusIntrospection(); }; +Q_DECLARE_TYPEINFO(QDBusIntrospection::Argument, Q_MOVABLE_TYPE); QT_END_NAMESPACE |