diff options
author | Lorenz Haas <lykurg@gmail.com> | 2014-02-19 06:48:37 +0100 |
---|---|---|
committer | David Schulz <david.schulz@digia.com> | 2014-02-21 06:54:51 +0100 |
commit | a142270d2c6332207fc657ef27e6a20eaec67d52 (patch) | |
tree | daadff16023b573ea859ac77552b69b071551bfa /src/plugins/beautifier/configurationeditor.cpp | |
parent | 88309188c13a22c1dc96dbd009b032925905e25d (diff) |
Beautifier: Fix possible endless loop
Change-Id: Ib2f98c2d761ea9abfd6a42ec30cf8318ee7bd575
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: David Schulz <david.schulz@digia.com>
Diffstat (limited to 'src/plugins/beautifier/configurationeditor.cpp')
-rw-r--r-- | src/plugins/beautifier/configurationeditor.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/plugins/beautifier/configurationeditor.cpp b/src/plugins/beautifier/configurationeditor.cpp index eb3890fdf14..8a75397b5a7 100644 --- a/src/plugins/beautifier/configurationeditor.cpp +++ b/src/plugins/beautifier/configurationeditor.cpp @@ -59,9 +59,12 @@ void ConfigurationSyntaxHighlighter::setKeywords(const QStringList &keywords) if (keywords.isEmpty()) return; + // Check for empty keywords since they can cause an endless loop in highlightBlock(). QStringList pattern; - for (int i = 0, total = keywords.count(); i < total; ++i) - pattern << QRegExp::escape(keywords.at(i)); + foreach (const QString &word, keywords) { + if (!word.isEmpty()) + pattern << QRegExp::escape(word); + } m_expressionKeyword.setPattern(QLatin1String("(?:\\s|^)(") + pattern.join(QLatin1String("|")) + QLatin1String(")(?=\\s|\\:|\\=|\\,|$)")); |