diff --git a/src/plugins/texteditor/generichighlighter/highlighter.cpp b/src/plugins/texteditor/generichighlighter/highlighter.cpp index e751020041639f92e62b75511580dbcf6a52812f..587b49665b29d99372650f59a94e7a7a04a9d353 100644 --- a/src/plugins/texteditor/generichighlighter/highlighter.cpp +++ b/src/plugins/texteditor/generichighlighter/highlighter.cpp @@ -323,8 +323,11 @@ void Highlighter::changeContext(const QString &contextName, { if (contextName.startsWith(kPop)) { QStringList list = contextName.split(kHash, QString::SkipEmptyParts); - for (int i = 0; i < list.size(); ++i) + for (int i = 0; i < list.size(); ++i) { + if (m_contexts.isEmpty()) + throw HighlighterException(); m_contexts.pop_back(); + } if (extractObservableState(currentBlockState()) >= PersistentsStart) { // One or more contexts were popped during during a persistent state.