From c4e25d2cf6fe49277a37e183504990535242037f Mon Sep 17 00:00:00 2001 From: Andrew den Exter Date: Fri, 9 Mar 2012 11:02:03 +1000 Subject: [PATCH] Declare change set and compositor structs as movable primative types. Allows QVector to avoid invoking contructors for these types unnecessarily. Change-Id: Icc8670e4a033c943666f907c7e1b006a3d205597 Reviewed-by: Bea Lam --- src/quick/util/qquickchangeset_p.h | 5 +++++ src/quick/util/qquicklistcompositor_p.h | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/src/quick/util/qquickchangeset_p.h b/src/quick/util/qquickchangeset_p.h index 6417966..04a1e77 100644 --- a/src/quick/util/qquickchangeset_p.h +++ b/src/quick/util/qquickchangeset_p.h @@ -152,6 +152,11 @@ private: int m_difference; }; +Q_DECLARE_TYPEINFO(QQuickChangeSet::Change, Q_PRIMITIVE_TYPE); +Q_DECLARE_TYPEINFO(QQuickChangeSet::Remove, Q_PRIMITIVE_TYPE); +Q_DECLARE_TYPEINFO(QQuickChangeSet::Insert, Q_PRIMITIVE_TYPE); +Q_DECLARE_TYPEINFO(QQuickChangeSet::MoveKey, Q_PRIMITIVE_TYPE); + inline uint qHash(const QQuickChangeSet::MoveKey &key) { return qHash(qMakePair(key.moveId, key.offset)); } inline bool operator ==(const QQuickChangeSet::MoveKey &l, const QQuickChangeSet::MoveKey &r) { return l.moveId == r.moveId && l.offset == r.offset; } diff --git a/src/quick/util/qquicklistcompositor_p.h b/src/quick/util/qquicklistcompositor_p.h index b12ee80..5c9d679 100644 --- a/src/quick/util/qquicklistcompositor_p.h +++ b/src/quick/util/qquicklistcompositor_p.h @@ -317,6 +317,10 @@ private: friend Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQuickListCompositor &list); }; +Q_DECLARE_TYPEINFO(QQuickListCompositor::Change, Q_PRIMITIVE_TYPE); +Q_DECLARE_TYPEINFO(QQuickListCompositor::Remove, Q_PRIMITIVE_TYPE); +Q_DECLARE_TYPEINFO(QQuickListCompositor::Insert, Q_PRIMITIVE_TYPE); + inline QQuickListCompositor::iterator::iterator() : range(0), offset(0), group(Default), groupCount(0) {} inline QQuickListCompositor::iterator::iterator(const iterator &it) -- 2.7.4