From d7e5d41494597ceaf7422f4b6a918d024c31caad Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 2 Feb 2015 15:00:19 +0100 Subject: [PATCH] Editor: Fix crash in generic highlighter. Make sure that the progress data object is deleted before the rule. Task-number: QTCREATORBUG-13883 Change-Id: Ie0d1825e695f0bfa7d46ee6dd807a94c95a08cd7 Reviewed-by: Eike Ziller --- src/plugins/texteditor/generichighlighter/highlighter.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/plugins/texteditor/generichighlighter/highlighter.cpp b/src/plugins/texteditor/generichighlighter/highlighter.cpp index ca46a2d3d8c..ed5ca095097 100644 --- a/src/plugins/texteditor/generichighlighter/highlighter.cpp +++ b/src/plugins/texteditor/generichighlighter/highlighter.cpp @@ -164,16 +164,17 @@ void Highlighter::highlightBlock(const QString &text) handleContextChange(m_currentContext->lineBeginContext(), m_currentContext->definition()); - ProgressData progress; + ProgressData *progress = new ProgressData; const int length = text.length(); - while (progress.offset() < length) - iterateThroughRules(text, length, &progress, false, m_currentContext->rules()); + while (progress->offset() < length) + iterateThroughRules(text, length, progress, false, m_currentContext->rules()); if (extractObservableState(currentBlockState()) != WillContinue) { handleContextChange(m_currentContext->lineEndContext(), m_currentContext->definition(), false); } + delete progress; m_contexts.clear(); if (m_indentationBasedFolding) {