diff options
author | Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com> | 2014-11-13 12:22:20 +0100 |
---|---|---|
committer | Jędrzej Nowacki <jedrzej.nowacki@digia.com> | 2014-11-19 14:45:48 +0100 |
commit | 4a28ae74e0cbc7d0b2ec45830fdbf8e80e8995d0 (patch) | |
tree | 0399922cc986f5fb9bfc92ec0a6c8dea600f7e82 | |
parent | 9bb702e9a9a386574f9851dbcced45e3518e9d6c (diff) | |
download | qtquick1-4a28ae74e0cbc7d0b2ec45830fdbf8e80e8995d0.tar.gz |
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>
-rw-r--r-- | src/declarative/qml/qdeclarativeengine.cpp | 32 |
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); |