diff options
author | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-03-31 15:03:12 +0300 |
---|---|---|
committer | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-04-28 16:47:54 +0000 |
commit | c8e4d15004bade8b99aaf74b6f899911b5d66962 (patch) | |
tree | 60b1e412cebe52042e1e2c00302f7f61ee3cb699 /src/dbus/qdbusmisc.cpp | |
parent | 6ebe7e8f37731a07ca7b1d5b8b93ccf73fb0273b (diff) |
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 <marc.mutz@kdab.com>
Diffstat (limited to 'src/dbus/qdbusmisc.cpp')
-rw-r--r-- | src/dbus/qdbusmisc.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
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); + } } } |