aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/texteditor/generichighlighter/specificrules.cpp
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2018-04-12 14:41:10 +0200
committerDavid Schulz <david.schulz@qt.io>2018-04-13 05:10:16 +0000
commitf4594c922fe3ffcfaf715cf09622ba48c3d1d620 (patch)
tree048aa9f0373fed1002f3fab3ace81829c31b2baf /src/plugins/texteditor/generichighlighter/specificrules.cpp
parent87971231286f74809669c4a55045f69912e54532 (diff)
Highlighter: fix crash after closing file
Regular expression rules are tracked inside the progress data to inform the rule about a finished highlighting process. A cloned rule was not properly tracked. That results in a rule that tries to untrack itself on destruction after the progress data has already been deleted. Task-number: QTCREATORBUG-20247 Change-Id: I007e7afbc16706bc28f89faf91c0b1c5f0bc692a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/texteditor/generichighlighter/specificrules.cpp')
-rw-r--r--src/plugins/texteditor/generichighlighter/specificrules.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/plugins/texteditor/generichighlighter/specificrules.cpp b/src/plugins/texteditor/generichighlighter/specificrules.cpp
index 8c4b80dc66..82a9de23ca 100644
--- a/src/plugins/texteditor/generichighlighter/specificrules.cpp
+++ b/src/plugins/texteditor/generichighlighter/specificrules.cpp
@@ -247,6 +247,14 @@ bool RegExprRule::doMatchSucceed(const QString &text,
return false;
}
+RegExprRule *RegExprRule::doClone() const
+{
+ auto clone = new RegExprRule(*this);
+ if (m_progress)
+ m_progress->trackRule(clone);
+ return clone;
+}
+
// Keyword
KeywordRule::KeywordRule(const QSharedPointer<HighlightDefinition> &definition) :
m_overrideGlobal(false),