diff options
-rw-r--r-- | src/dbus/qdbusmisc.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/dbus/qdbusmisc.cpp b/src/dbus/qdbusmisc.cpp index 0502bea0ac..930c3bd2da 100644 --- a/src/dbus/qdbusmisc.cpp +++ b/src/dbus/qdbusmisc.cpp @@ -99,9 +99,14 @@ QString qDBusInterfaceFromMetaObject(const QMetaObject *mo) if (domainName.isEmpty()) { interface.prepend(QLatin1String("local.")); } else { - interface.reserve(interface.size() + organizationDomain.size()); - for (const QStringRef &x : domainName) - interface.prepend(QLatin1Char('.')).prepend(x); + QString composedDomain; + // + 1 for additional dot, e.g. organizationDomain equals "example.com", + // then composedDomain will be equal "com.example." + composedDomain.reserve(organizationDomain.size() + 1); + for (auto it = domainName.rbegin(), end = domainName.rend(); it != end; ++it) + composedDomain += *it + QLatin1Char('.'); + + interface.prepend(composedDomain); } } } |