From 612e082fe2ad16fa4ba251c435092547efff69a1 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 24 Jun 2015 02:04:09 +0200 Subject: uic: replace an inefficient QList with QVector Buddy is larger than a void*, so holding it in QLists is needlessly inefficient. Worse, the code could come to depend on the fragile property of (inefficient) QLists that references to elements therein never are invalidated. Fix by marking it movable, and holding it in a QVector instead. Since QVector requires a default ctor, drop the pointless existing ctor and use aggregate initialization instead. Use QVector's rvalue append. Change-Id: I696ca4f03dbe362a5438be209debbcd966fe8130 Reviewed-by: Friedemann Kleint --- src/tools/uic/cpp/cppwriteinitialization.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/tools/uic/cpp/cppwriteinitialization.h') diff --git a/src/tools/uic/cpp/cppwriteinitialization.h b/src/tools/uic/cpp/cppwriteinitialization.h index 03e84039a6..a9691e1de4 100644 --- a/src/tools/uic/cpp/cppwriteinitialization.h +++ b/src/tools/uic/cpp/cppwriteinitialization.h @@ -251,16 +251,15 @@ private: struct Buddy { - Buddy(const QString &oN, const QString &b) - : objName(oN), buddy(b) {} QString objName; QString buddy; }; + friend class QTypeInfo; QStack m_widgetChain; QStack m_layoutChain; QStack m_actionGroupChain; - QList m_buddies; + QVector m_buddies; QSet m_buttonGroups; QHash m_registeredWidgets; @@ -323,6 +322,8 @@ private: } // namespace CPP +Q_DECLARE_TYPEINFO(CPP::WriteInitialization::Buddy, Q_MOVABLE_TYPE); + QT_END_NAMESPACE #endif // CPPWRITEINITIALIZATION_H -- cgit v1.2.3