OSDN Git Service

SemanticHighlighter: Fix off-by-one in assert.
authorChristian Kamm <christian.d.kamm@nokia.com>
Fri, 16 Sep 2011 07:50:17 +0000 (09:50 +0200)
committerChristian Kamm <christian.d.kamm@nokia.com>
Fri, 16 Sep 2011 08:20:45 +0000 (10:20 +0200)
Change-Id: Ie9331d233894e49cf86605819687eeef765272df
Reviewed-on: http://codereview.qt-project.org/5067
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
src/plugins/texteditor/semantichighlighter.cpp

index 0e541e8..ba36dc9 100644 (file)
@@ -125,8 +125,13 @@ void TextEditor::SemanticHighlighter::clearExtraAdditionalFormatsUntilEnd(
     }
 
     QTextDocument *doc = highlighter->document();
-    QTC_ASSERT(lastBlockNumber + 1 < doc->blockCount(), return);
-    QTextBlock b = doc->findBlockByNumber(lastBlockNumber + 1);
+
+    const int firstBlockToClear = lastBlockNumber + 1;
+    if (firstBlockToClear == doc->blockCount())
+        return;
+    QTC_ASSERT(firstBlockToClear < doc->blockCount(), return);
+
+    QTextBlock b = doc->findBlockByNumber(firstBlockToClear);
 
     while (b.isValid()) {
         highlighter->setExtraAdditionalFormats(b, QList<QTextLayout::FormatRange>());