From 67638d08b482150f2bace66b4836e278b73cc214 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 22 Jul 2015 14:19:07 +0200 Subject: Optimize CppCodeMarker::addMarkUp() This cuts away another 15% of the running time of qdoc -prepare. Change-Id: I81bc32fa191b73fad5d7bd27ff22ac845f83a9ce Reviewed-by: Martin Smith --- src/tools/qdoc/cppcodemarker.cpp | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'src/tools/qdoc/cppcodemarker.cpp') diff --git a/src/tools/qdoc/cppcodemarker.cpp b/src/tools/qdoc/cppcodemarker.cpp index 9aec902860..6060339762 100644 --- a/src/tools/qdoc/cppcodemarker.cpp +++ b/src/tools/qdoc/cppcodemarker.cpp @@ -893,8 +893,8 @@ QString CppCodeMarker::addMarkUp(const QString &in, ch = (i < (int)code.length()) ? code[i++].cell() : EOF QString code = in; - QStringList out; - QString text; + QString out; + QStringRef text; int braceDepth = 0; int parenDepth = 0; int i = 0; @@ -1069,27 +1069,34 @@ QString CppCodeMarker::addMarkUp(const QString &in, } } - text = code.mid(start, finish - start); + text = code.midRef(start, finish - start); start = finish; if (!tag.isEmpty()) { - out << QStringLiteral("<@") << tag; - if (target) - out << QStringLiteral(" target=\"") << text << QStringLiteral("()\""); - out << QStringLiteral(">"); + out += QStringLiteral("<@"); + out += tag; + if (target) { + out += QStringLiteral(" target=\""); + out += text; + out += QStringLiteral("()\""); + } + out += QStringLiteral(">"); } - out << protect(text); + out += protect(text); - if (!tag.isEmpty()) - out << QStringLiteral(""); + if (!tag.isEmpty()) { + out += QStringLiteral(""); + } } if (start < code.length()) { - out << protect(code.mid(start)); + out += protect(code.midRef(start)); } - return out.join(QString()); + return out; } /*! -- cgit v1.2.3