aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqml.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-02-26 09:48:43 +0100
committerUlf Hermann <ulf.hermann@qt.io>2020-03-12 10:38:40 +0100
commitf78e542053cfc1d5c1b26d6fa4d18ef1698359a0 (patch)
tree6786ce197dbf98f54e321c357e74bb3d5c29b8b3 /src/qml/qml/qqml.cpp
parent547b4d2c2d9424fdcc694e291fe543a4f52cb684 (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.cpp19
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);