diff options
author | David Schulz <david.schulz@qt.io> | 2018-04-12 14:41:10 +0200 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2018-04-13 05:10:16 +0000 |
commit | f4594c922fe3ffcfaf715cf09622ba48c3d1d620 (patch) | |
tree | 048aa9f0373fed1002f3fab3ace81829c31b2baf /src/plugins/texteditor/generichighlighter/specificrules.cpp | |
parent | 87971231286f74809669c4a55045f69912e54532 (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.cpp | 8 |
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), |