summaryrefslogtreecommitdiffstats
path: root/src/declarative
diff options
context:
space:
mode:
authorJędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>2014-11-13 12:22:20 +0100
committerJędrzej Nowacki <jedrzej.nowacki@digia.com>2014-11-19 14:45:48 +0100
commit4a28ae74e0cbc7d0b2ec45830fdbf8e80e8995d0 (patch)
tree0399922cc986f5fb9bfc92ec0a6c8dea600f7e82 /src/declarative
parent9bb702e9a9a386574f9851dbcced45e3518e9d6c (diff)
Do not use QMetaType::registerType.
The function is transitional from Qt4 to Qt5. It should not be called. The patch is a semi cherry-pick of: 14e247e4b94df17ed62750b4468c2ac25aabe30f a49154a75005403185e3813d441fb3e1931af2a2 1f74dde59f8ecb8be3a41973ab5d8d435815edd6 from qtdeclarative. Change-Id: I5f90a58d6fa8d1df69e149da22e17e234173dd68 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/declarative')
-rw-r--r--src/declarative/qml/qdeclarativeengine.cpp32
1 files changed, 13 insertions, 19 deletions
diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp
index 682c8267..7f4ed88e 100644
--- a/src/declarative/qml/qdeclarativeengine.cpp
+++ b/src/declarative/qml/qdeclarativeengine.cpp
@@ -2295,21 +2295,6 @@ QString QDeclarativeEngine::offlineStoragePath() const
return d->scriptEngine.offlineStoragePath;
}
-static void voidptr_destructor(void *v)
-{
- void **ptr = (void **)v;
- delete ptr;
-}
-
-static void *voidptr_constructor(const void *v)
-{
- if (!v) {
- return new void*;
- } else {
- return new void*(*(void **)v);
- }
-}
-
QDeclarativePropertyCache *QDeclarativeEnginePrivate::createCache(const QMetaObject *mo)
{
Q_Q(QDeclarativeEngine);
@@ -2436,10 +2421,19 @@ void QDeclarativeEnginePrivate::registerCompositeType(QDeclarativeCompiledData *
QByteArray ptr = name + '*';
QByteArray lst = "QDeclarativeListProperty<" + name + '>';
- int ptr_type = QMetaType::registerType(ptr.constData(), voidptr_destructor,
- voidptr_constructor);
- int lst_type = QMetaType::registerType(lst.constData(), voidptr_destructor,
- voidptr_constructor);
+ int ptr_type = QMetaType::registerNormalizedType(ptr,
+ QtMetaTypePrivate::QMetaTypeFunctionHelper<QObject*>::Destruct,
+ QtMetaTypePrivate::QMetaTypeFunctionHelper<QObject*>::Construct,
+ sizeof(QObject*),
+ static_cast<QFlags<QMetaType::TypeFlag> >(QtPrivate::QMetaTypeTypeFlags<QObject*>::Flags),
+ data->root);
+ int lst_type = QMetaType::registerNormalizedType(lst,
+ QtMetaTypePrivate::QMetaTypeFunctionHelper<QDeclarativeListProperty<QObject> >::Destruct,
+ QtMetaTypePrivate::QMetaTypeFunctionHelper<QDeclarativeListProperty<QObject> >::Construct,
+ sizeof(QDeclarativeListProperty<QObject>),
+ static_cast<QFlags<QMetaType::TypeFlag> >(QtPrivate::QMetaTypeTypeFlags<QDeclarativeListProperty<QObject> >::Flags),
+ static_cast<QMetaObject*>(0));
+
m_qmlLists.insert(lst_type, ptr_type);
m_compositeTypes.insert(ptr_type, data);