diff --git a/src/dbus/qdbusmetaobject.cpp b/src/dbus/qdbusmetaobject.cpp index 543b185df9e..f1b586f58d7 100644 --- a/src/dbus/qdbusmetaobject.cpp +++ b/src/dbus/qdbusmetaobject.cpp @@ -116,8 +116,11 @@ static int registerComplexDBusType(const QByteArray &typeName) { ~Hash() { - for (QMetaType entry : *this) + for (QMetaType entry : std::as_const(*this)) { + auto iface = static_cast(entry.iface()); QMetaType::unregisterMetaType(std::move(entry)); + delete iface; + } } } hash; QMutexLocker lock(&mutex);