diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2019-05-29 14:51:17 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2019-05-29 14:56:37 +0200 |
commit | 2ae68e243e3177220edd8b305116db92046c7c2c (patch) | |
tree | 876cc0f180677cbe441442de56ce85fdad466750 /src/qml | |
parent | 677af8c7e8d4b7627cb4b8227c3cd869aba577ef (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.cpp | 4 |
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); } } } |