diff options
author | Jędrzej Nowacki <jedrzej.nowacki@digia.com> | 2012-11-02 17:21:38 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-11-27 23:14:57 +0100 |
commit | 51c12b2d4899db31d62e930ffbe5a8849fa7336b (patch) | |
tree | a399457446b9ad4759c5eef0c590105fdfa0f948 /src | |
parent | 76251c91afdfbe6d0d9679c2036cbf72c7ee3cde (diff) |
Declare type information for some internal qml types.
QQmlVME::State and QBitField are movable and used in QStack. Declaring
them as movable may improve potential reallocation time, although it is
hard to prove.
Change-Id: Ia42b8104e2f24ca7574370c76084df44b9f9298e
Reviewed-by: Alan Alpert <aalpert@rim.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/qml/ftw/qbitfield_p.h | 3 | ||||
-rw-r--r-- | src/qml/qml/qqmlvme_p.h | 25 |
2 files changed, 17 insertions, 11 deletions
diff --git a/src/qml/qml/ftw/qbitfield_p.h b/src/qml/qml/ftw/qbitfield_p.h index 95ca372f3a..f225c279fc 100644 --- a/src/qml/qml/ftw/qbitfield_p.h +++ b/src/qml/qml/ftw/qbitfield_p.h @@ -54,6 +54,7 @@ // #include <QtCore/qglobal.h> +#include <QtCore/qtypeinfo.h> QT_BEGIN_NAMESPACE @@ -160,6 +161,8 @@ bool QBitField::testBit(int b) const } } +Q_DECLARE_TYPEINFO(QBitField, Q_MOVABLE_TYPE); + QT_END_NAMESPACE #endif // QBITFIELD_P_H diff --git a/src/qml/qml/qqmlvme_p.h b/src/qml/qml/qqmlvme_p.h index d2df630b4b..e71094352f 100644 --- a/src/qml/qml/qqmlvme_p.h +++ b/src/qml/qml/qqmlvme_p.h @@ -62,6 +62,7 @@ #include <QtCore/QString> #include <QtCore/qelapsedtimer.h> #include <QtCore/qcoreapplication.h> +#include <QtCore/qtypeinfo.h> #include <private/qv8_p.h> #include <private/qqmlengine_p.h> @@ -87,8 +88,20 @@ namespace QQmlVMETypes { int type; QQmlListProperty<void> qListProperty; }; + struct State { + enum Flag { Deferred = 0x00000001 }; + + State() : flags(0), context(0), compiledData(0), instructionStream(0) {} + quint32 flags; + QQmlContextData *context; + QQmlCompiledData *compiledData; + const char *instructionStream; + QBitField bindingSkipList; + }; } Q_DECLARE_TYPEINFO(QQmlVMETypes::List, Q_PRIMITIVE_TYPE | Q_MOVABLE_TYPE); +template<> +class QTypeInfo<QQmlVMETypes::State> : public QTypeInfoMerger<QQmlVMETypes::State, QBitField> {}; //Q_DECLARE_TYPEINFO class Q_QML_PRIVATE_EXPORT QQmlVME { @@ -161,17 +174,7 @@ private: QQmlGuardedContextData rootContext; QQmlGuardedContextData creationContext; - struct State { - enum Flag { Deferred = 0x00000001 }; - - State() : flags(0), context(0), compiledData(0), instructionStream(0) {} - quint32 flags; - QQmlContextData *context; - QQmlCompiledData *compiledData; - const char *instructionStream; - QBitField bindingSkipList; - }; - + typedef QQmlVMETypes::State State; QStack<State> states; static void blank(QFiniteStack<QQmlParserStatus *> &); |