Browse Source

bugfix: abandon obsolete parsed highlight result when text has been changed

Le Tan 8 years ago
parent
commit
bd7f0e6cdd
1 changed files with 6 additions and 0 deletions
  1. 6 0
      src/hgmarkdownhighlighter.cpp

+ 6 - 0
src/hgmarkdownhighlighter.cpp

@@ -414,6 +414,12 @@ void HGMarkdownHighlighter::setCodeBlockHighlights(const QList<HLUnitPos> &p_uni
         int end = unit.m_position + unit.m_length;
         int startBlockNum = document->findBlock(pos).blockNumber();
         int endBlockNum = document->findBlock(end).blockNumber();
+
+        // Text has been changed. Abandon the obsolete parsed result.
+        if (startBlockNum == -1 || endBlockNum >= highlights.size()) {
+            goto exit;
+        }
+
         for (int i = startBlockNum; i <= endBlockNum; ++i)
         {
             QTextBlock block = document->findBlockByNumber(i);