From 58f0b6b5a84f93e74ff99bb9481c9142bda32270 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 9 Jul 2015 21:40:58 +0200 Subject: qdoc: don't hold ParsedParameter in a QList ParsedParameter is larger than a void*, so holding it in QList 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 in a QVector instead. Change-Id: I5b1bea9ef7b796a790d8e86404531ae19a4aca66 Reviewed-by: Martin Smith --- src/tools/qdoc/cppcodeparser.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/tools/qdoc/cppcodeparser.h') diff --git a/src/tools/qdoc/cppcodeparser.h b/src/tools/qdoc/cppcodeparser.h index 4fb428fc725..733418e27ad 100644 --- a/src/tools/qdoc/cppcodeparser.h +++ b/src/tools/qdoc/cppcodeparser.h @@ -58,7 +58,8 @@ class CppCodeParser : public CodeParser QString defaultValue_; ParsedParameter() : qPrivateSignal_(false) { } }; - typedef QList ParsedParameterList; + friend class QTypeInfo; + typedef QVector ParsedParameterList; struct ExtraFuncData { Aggregate* root; // Used as the parent. @@ -186,6 +187,7 @@ protected: QString exampleNameFilter; QString exampleImageFilter; }; +Q_DECLARE_TYPEINFO(CppCodeParser::ParsedParameter, Q_MOVABLE_TYPE); #define COMMAND_ABSTRACT Doc::alias("abstract") #define COMMAND_CLASS Doc::alias("class") -- cgit v1.2.3