From c8e4d15004bade8b99aaf74b6f899911b5d66962 Mon Sep 17 00:00:00 2001 From: Anton Kudryavtsev Date: Thu, 31 Mar 2016 15:03:12 +0300 Subject: DBus: use QStringRef to optimize memory allocation Replace substring functions that return QString with corresponding functions that return QStringRef where it's possible. Create QString from QStringRef only where necessary. Add overloaded functions with QStringRef arg in QDBusUtil: - isValidUniqueConnectionName() - isValidMemberName() - isValidPartOfObjectPath() Change-Id: I4a24a298702728ba7d3a65c39e25c3a9c759e07f Reviewed-by: Marc Mutz --- src/dbus/qdbusmisc.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/dbus/qdbusmisc.cpp') diff --git a/src/dbus/qdbusmisc.cpp b/src/dbus/qdbusmisc.cpp index 6ecd66f3e7..0502bea0ac 100644 --- a/src/dbus/qdbusmisc.cpp +++ b/src/dbus/qdbusmisc.cpp @@ -94,14 +94,15 @@ QString qDBusInterfaceFromMetaObject(const QMetaObject *mo) interface.prepend(QLatin1String("local.")); } else { interface.prepend(QLatin1Char('.')).prepend(QCoreApplication::instance()->applicationName()); - QStringList domainName = - QCoreApplication::instance()->organizationDomain().split(QLatin1Char('.'), - QString::SkipEmptyParts); - if (domainName.isEmpty()) + const QString organizationDomain = QCoreApplication::instance()->organizationDomain(); + const auto domainName = organizationDomain.splitRef(QLatin1Char('.'), QString::SkipEmptyParts); + if (domainName.isEmpty()) { interface.prepend(QLatin1String("local.")); - else - for (int i = 0; i < domainName.count(); ++i) - interface.prepend(QLatin1Char('.')).prepend(domainName.at(i)); + } else { + interface.reserve(interface.size() + organizationDomain.size()); + for (const QStringRef &x : domainName) + interface.prepend(QLatin1Char('.')).prepend(x); + } } } -- cgit v1.2.3