aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlprivate.h
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/qqmlprivate.h
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/qqmlprivate.h')
-rw-r--r--src/qml/qml/qqmlprivate.h24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/qml/qml/qqmlprivate.h b/src/qml/qml/qqmlprivate.h
index 968811e602..259deb5f32 100644
--- a/src/qml/qml/qqmlprivate.h
+++ b/src/qml/qml/qqmlprivate.h
@@ -400,7 +400,7 @@ namespace QQmlPrivate
};
struct RegisterAutoParent {
- int version;
+ int structVersion;
AutoParentFunction function;
};
@@ -413,12 +413,11 @@ namespace QQmlPrivate
const char *typeName;
QJSValue (*scriptApi)(QQmlEngine *, QJSEngine *);
- QObject *(*qobjectApi)(QQmlEngine *, QJSEngine *);
- const QMetaObject *instanceMetaObject; // new in version 1
- QMetaType typeId; // new in version 2
- QTypeRevision revision; // new in version 2
- std::function<QObject*(QQmlEngine *, QJSEngine *)> generalizedQobjectApi; // new in version 3
- // If this is extended ensure "version" is bumped!!!
+ std::function<QObject*(QQmlEngine *, QJSEngine *)> qObjectApi;
+
+ const QMetaObject *instanceMetaObject;
+ QMetaType typeId;
+ QTypeRevision revision;
};
struct RegisterSingletonTypeAndRevisions {
@@ -426,16 +425,17 @@ namespace QQmlPrivate
const char *uri;
QTypeRevision version;
- QJSValue (*scriptApi)(QQmlEngine *, QJSEngine *);
+ std::function<QObject*(QQmlEngine *, QJSEngine *)> qObjectApi;
+
const QMetaObject *instanceMetaObject;
const QMetaObject *classInfoMetaObject;
QMetaType typeId;
- std::function<QObject*(QQmlEngine *, QJSEngine *)> generalizedQobjectApi; // new in version 3
QVector<int> *qmlTypeIds;
};
struct RegisterCompositeType {
+ int structVersion;
QUrl url;
const char *uri;
QTypeRevision version;
@@ -443,6 +443,7 @@ namespace QQmlPrivate
};
struct RegisterCompositeSingletonType {
+ int structVersion;
QUrl url;
const char *uri;
QTypeRevision version;
@@ -475,7 +476,7 @@ namespace QQmlPrivate
int Q_QML_EXPORT qmlregister(RegistrationType, void *);
void Q_QML_EXPORT qmlunregister(RegistrationType, quintptr);
- struct Q_QML_EXPORT RegisterSingletonFunctor
+ struct Q_QML_EXPORT SingletonFunctor
{
QObject *operator()(QQmlEngine *, QJSEngine *);
@@ -593,13 +594,12 @@ namespace QQmlPrivate
uri,
QTypeRevision::fromMajorVersion(versionMajor),
- nullptr,
+ Constructors<T>::createSingletonInstance,
&T::staticMetaObject,
classInfoMetaObject,
QMetaType::fromType<T *>(),
- Constructors<T>::createSingletonInstance,
qmlTypeIds
};