diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2020-02-26 09:48:43 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2020-03-12 10:38:40 +0100 |
commit | f78e542053cfc1d5c1b26d6fa4d18ef1698359a0 (patch) | |
tree | 6786ce197dbf98f54e321c357e74bb3d5c29b8b3 /src/qml/qml/qqml.cpp | |
parent | 547b4d2c2d9424fdcc694e291fe543a4f52cb684 (diff) |
Clean up type registration structs
* reset all structVersions to 0, removing checks for higher versions
* add structVerions where they are missing
* consistently check for compatibility in qqmlmetatype.cpp
* remove unused members
* rename RegisterSingletonFunctor
Fixes: QTBUG-82241
Change-Id: I74f1876b3298dbb60ff7cfab8c13e8ad4f9f8cdc
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/qml/qqml.cpp')
-rw-r--r-- | src/qml/qml/qqml.cpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/src/qml/qml/qqml.cpp b/src/qml/qml/qqml.cpp index 79f853487c..28b48e2eee 100644 --- a/src/qml/qml/qqml.cpp +++ b/src/qml/qml/qqml.cpp @@ -79,7 +79,7 @@ int qmlTypeId(const char *uri, int versionMajor, int versionMinor, const char *q } // From qqmlprivate.h -QObject *QQmlPrivate::RegisterSingletonFunctor::operator()(QQmlEngine *qeng, QJSEngine *) +QObject *QQmlPrivate::SingletonFunctor::operator()(QQmlEngine *qeng, QJSEngine *) { if (!m_object) { QQmlError error; @@ -206,7 +206,7 @@ int QQmlPrivate::qmlregister(RegistrationType type, void *data) ? QString() : QString::fromUtf8(classInfo(type.classInfoMetaObject, "QML.UncreatableReason")); RegisterType revisionRegistration = { - 1, + 0, type.typeId, type.listId, creatable ? type.objectSize : 0, @@ -264,18 +264,15 @@ int QQmlPrivate::qmlregister(RegistrationType type, void *data) = *reinterpret_cast<RegisterSingletonTypeAndRevisions *>(data); const char *elementName = classElementName(type.classInfoMetaObject); RegisterSingletonType revisionRegistration = { - QmlCurrentSingletonTypeRegistrationVersion, + 0, type.uri, type.version, elementName, - - type.scriptApi, nullptr, + type.qObjectApi, type.instanceMetaObject, type.typeId, - QTypeRevision(), - - type.generalizedQobjectApi + QTypeRevision() }; const QTypeRevision added = revisionClassInfo( @@ -294,12 +291,10 @@ int QQmlPrivate::qmlregister(RegistrationType type, void *data) // When removed, we still add revisions, but anonymous ones if (removed.isValid() && !(revision < removed)) { revisionRegistration.typeName = nullptr; - revisionRegistration.scriptApi = nullptr; - revisionRegistration.generalizedQobjectApi = nullptr; + revisionRegistration.qObjectApi = nullptr; } else { revisionRegistration.typeName = elementName; - revisionRegistration.scriptApi = type.scriptApi; - revisionRegistration.generalizedQobjectApi = type.generalizedQobjectApi; + revisionRegistration.qObjectApi = type.qObjectApi; } assignVersions(&revisionRegistration, revision, type.version); |