From 7dab889190b2289a7c4b48e732d7cb7838dbf297 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 15 Sep 2020 15:31:54 +0200 Subject: QQmlMetaType: Unregister metatype interfaces before deleting them Otherwise the type may be retained in the aliases map. Change-Id: If6fbca53a417d76ad21548bea10f68401feb5c8c Reviewed-by: Lars Knoll --- src/qml/qml/qqmlmetatype.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/qml/qml/qqmlmetatype.cpp b/src/qml/qml/qqmlmetatype.cpp index 06fdb0fab0..79ea83b6df 100644 --- a/src/qml/qml/qqmlmetatype.cpp +++ b/src/qml/qml/qqmlmetatype.cpp @@ -619,8 +619,12 @@ void QQmlMetaType::unregisterInternalCompositeType(const CompositeMetaTypeIds &t { QQmlMetaTypeDataPtr data; data->qmlLists.remove(typeIds.listId.id()); - delete static_cast(QMetaType(typeIds.id).iface()); - delete static_cast(QMetaType(typeIds.listId).iface()); + QMetaType metaType(typeIds.id); + QMetaType::unregisterMetaType(metaType); + QMetaType listMetaType(typeIds.listId); + QMetaType::unregisterMetaType(listMetaType); + delete static_cast(metaType.iface()); + delete static_cast(listMetaType.iface()); } int QQmlMetaType::registerUnitCacheHook( -- cgit v1.2.3