aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2019-05-29 14:51:17 +0200
committerUlf Hermann <ulf.hermann@qt.io>2019-05-29 14:56:37 +0200
commit2ae68e243e3177220edd8b305116db92046c7c2c (patch)
tree876cc0f180677cbe441442de56ce85fdad466750 /src/qml
parent677af8c7e8d4b7627cb4b8227c3cd869aba577ef (diff)
In qmlUnregisterType() also remove the type from undeletableTypes
Task-number: QTBUG-76074 Change-Id: I7f5ca6af0955524f9a417811c2e9f960c2b3efb3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml')
-rw-r--r--src/qml/qml/qqmlmetatype.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/qml/qml/qqmlmetatype.cpp b/src/qml/qml/qqmlmetatype.cpp
index c0628c3523..573288b77f 100644
--- a/src/qml/qml/qqmlmetatype.cpp
+++ b/src/qml/qml/qqmlmetatype.cpp
@@ -2572,7 +2572,8 @@ void qmlUnregisterType(int typeIndex)
QMutexLocker lock(metaTypeDataLock());
QQmlMetaTypeData *data = metaTypeData();
{
- const QQmlTypePrivate *d = data->types.value(typeIndex).priv();
+ const QQmlType type = data->types.value(typeIndex);
+ const QQmlTypePrivate *d = type.priv();
if (d) {
removeQQmlTypePrivate(data->idToType, d);
removeQQmlTypePrivate(data->nameToType, d);
@@ -2584,6 +2585,7 @@ void qmlUnregisterType(int typeIndex)
modulePrivate->remove(d);
}
data->types[typeIndex] = QQmlType();
+ data->undeletableTypes.remove(type);
}
}
}