summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2015-07-09 21:40:58 +0200
committerMarc Mutz <marc.mutz@kdab.com>2015-07-10 12:21:07 +0000
commit58f0b6b5a84f93e74ff99bb9481c9142bda32270 (patch)
tree956062163d031037c3ba0d4d9b5d0e52cc47a2cd /src/tools/qdoc
parent32a5026f36018e124acd0794847d8fed3e27ed40 (diff)
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 <martin.smith@digia.com>
Diffstat (limited to 'src/tools/qdoc')
-rw-r--r--src/tools/qdoc/cppcodeparser.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/tools/qdoc/cppcodeparser.h b/src/tools/qdoc/cppcodeparser.h
index 4fb428fc72..733418e27a 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<ParsedParameter> ParsedParameterList;
+ friend class QTypeInfo<ParsedParameter>;
+ typedef QVector<ParsedParameter> 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")