diff options
author | Sérgio Martins <sergio.martins@kdab.com> | 2015-06-22 18:12:40 +0100 |
---|---|---|
committer | Sérgio Martins <sergio.martins@kdab.com> | 2015-06-23 12:46:36 +0000 |
commit | a4d3af961445995337c279e71c861afc213c06f3 (patch) | |
tree | bfd64471843a068e21ec8ff8f3505e5d6f8121b7 /src/dbus/qdbusintegrator.cpp | |
parent | 19e63a207f93d54bb38fff992f34e14e73b6ddc8 (diff) |
dbus: Use QList::reserve(), reduces reallocations.
Change-Id: I5d60220c4d3014067a45a3d3553f0523c9fc7c74
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/dbus/qdbusintegrator.cpp')
-rw-r--r-- | src/dbus/qdbusintegrator.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp index 5135a9a184..22c1a3e363 100644 --- a/src/dbus/qdbusintegrator.cpp +++ b/src/dbus/qdbusintegrator.cpp @@ -952,14 +952,19 @@ void QDBusConnectionPrivate::deliverCall(QObject *object, int /*flags*/, const Q } // output arguments + const int numMetaTypes = metaTypes.count(); QVariantList outputArgs; void *null = 0; if (metaTypes[0] != QMetaType::Void && metaTypes[0] != QMetaType::UnknownType) { + outputArgs.reserve(numMetaTypes - i + 1); QVariant arg(metaTypes[0], null); outputArgs.append( arg ); params[0] = const_cast<void*>(outputArgs.at( outputArgs.count() - 1 ).constData()); + } else { + outputArgs.reserve(numMetaTypes - i); } - for ( ; i < metaTypes.count(); ++i) { + + for ( ; i < numMetaTypes; ++i) { QVariant arg(metaTypes[i], null); outputArgs.append( arg ); params.append(const_cast<void*>(outputArgs.at( outputArgs.count() - 1 ).constData())); |