From 3707083061f0866d2dec31d020a3d20a4bda0cae Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sun, 21 Mar 2021 08:21:38 +0200 Subject: [PATCH] keep references to strings in QDBusConnection, QDBusError and QDBusServer Signed-off-by: Ivailo Monev --- src/dbus/qdbusconnection.cpp | 6 ++++-- src/dbus/qdbuserror.cpp | 3 ++- src/dbus/qdbusserver.cpp | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp index 1bca929fc..2b2b2e856 100644 --- a/src/dbus/qdbusconnection.cpp +++ b/src/dbus/qdbusconnection.cpp @@ -344,7 +344,8 @@ QDBusConnection QDBusConnection::connectToBus(const QString &address, d = new QDBusConnectionPrivate; // setConnection does the error handling for us QDBusErrorInternal error; - DBusConnection *c = dbus_connection_open_private(address.toUtf8().constData(), error); + const QByteArray addressref = address.toUtf8(); + DBusConnection *c = dbus_connection_open_private(addressref.constData(), error); if (c) { if (!dbus_bus_register(c, error)) { dbus_connection_unref(c); @@ -383,7 +384,8 @@ QDBusConnection QDBusConnection::connectToPeer(const QString &address, d = new QDBusConnectionPrivate; // setPeer does the error handling for us QDBusErrorInternal error; - DBusConnection *c = dbus_connection_open_private(address.toUtf8().constData(), error); + const QByteArray addressref = address.toUtf8(); + DBusConnection *c = dbus_connection_open_private(addressref.constData(), error); d->setPeer(c, error); _q_manager()->setConnection(name, d); diff --git a/src/dbus/qdbuserror.cpp b/src/dbus/qdbuserror.cpp index 921926bfc..a770a58a4 100644 --- a/src/dbus/qdbuserror.cpp +++ b/src/dbus/qdbuserror.cpp @@ -193,7 +193,8 @@ QDBusError::QDBusError(const QDBusMessage &qdmsg) if (qdmsg.type() != QDBusMessage::ErrorMessage) return; - code = getError(qdmsg.errorName().toUtf8().constData()); + const QByteArray errorref = qdmsg.errorName().toUtf8(); + code = getError(errorref.constData()); nm = qdmsg.errorName(); msg = qdmsg.errorMessage(); } diff --git a/src/dbus/qdbusserver.cpp b/src/dbus/qdbusserver.cpp index 1b5f0f03f..ea7a7d0fd 100644 --- a/src/dbus/qdbusserver.cpp +++ b/src/dbus/qdbusserver.cpp @@ -51,7 +51,8 @@ QDBusServer::QDBusServer(const QString &address, QObject *parent) this, SIGNAL(newConnection(QDBusConnection))); QDBusErrorInternal error; - d->setServer(dbus_server_listen(address.toUtf8().constData(), error), error); + const QByteArray addressref = address.toUtf8(); + d->setServer(dbus_server_listen(addressref.constData(), error), error); } /*!