diff --git a/declarativeplugin/responsewaiter.cpp b/declarativeplugin/responsewaiter.cpp index c62330c9f..683a05350 100644 --- a/declarativeplugin/responsewaiter.cpp +++ b/declarativeplugin/responsewaiter.cpp @@ -45,7 +45,7 @@ DBusResponseWaiter::DBusResponseWaiter() QVariant DBusResponseWaiter::waitForReply(QVariant variant) const { - if (QDBusPendingCall* call = const_cast(extractPendingCall(variant))) + if (QDBusPendingCall* call = extractPendingCall(variant)) { call->waitForFinished(); @@ -77,7 +77,7 @@ DBusAsyncResponse::DBusAsyncResponse(QObject* parent) void DBusAsyncResponse::setPendingCall(QVariant variant) { - if (QDBusPendingCall* call = const_cast(DBusResponseWaiter::instance()->extractPendingCall(variant))) + if (QDBusPendingCall* call = DBusResponseWaiter::instance()->extractPendingCall(variant)) { QDBusPendingCallWatcher* watcher = new QDBusPendingCallWatcher(*call); watcher->setProperty("pengingCallVariant", variant); @@ -124,13 +124,13 @@ void DBusAsyncResponse::onTimeout() Q_EMIT error(QStringLiteral("timeout when waiting dbus response!")); } -const QDBusPendingCall* DBusResponseWaiter::extractPendingCall(QVariant& variant) const +QDBusPendingCall* DBusResponseWaiter::extractPendingCall(QVariant& variant) const { for (int type : qAsConst(m_registered)) { if (variant.canConvert(QVariant::Type(type))) { - return reinterpret_cast(variant.constData()); + return static_cast(variant.value()); } } diff --git a/declarativeplugin/responsewaiter.h b/declarativeplugin/responsewaiter.h index e5b19f806..b25a74685 100644 --- a/declarativeplugin/responsewaiter.h +++ b/declarativeplugin/responsewaiter.h @@ -25,7 +25,7 @@ public: ///extract QDbusPendingCall from \p variant and blocks until completed Q_INVOKABLE QVariant waitForReply(QVariant variant) const; - const QDBusPendingCall* extractPendingCall(QVariant& variant) const; + QDBusPendingCall* extractPendingCall(QVariant& variant) const; private: DBusResponseWaiter();