diff --git a/liteidex/src/3rdparty/qtc_texteditor/generichighlighter/highlighter.cpp b/liteidex/src/3rdparty/qtc_texteditor/generichighlighter/highlighter.cpp index db4a283f1..e2c465a0b 100644 --- a/liteidex/src/3rdparty/qtc_texteditor/generichighlighter/highlighter.cpp +++ b/liteidex/src/3rdparty/qtc_texteditor/generichighlighter/highlighter.cpp @@ -352,8 +352,13 @@ void Highlighter::changeContext(const QString &contextName, { if (contextName.startsWith(kPop)) { QStringList list = contextName.split(kHash, qtSkipEmptyParts); - for (int i = 0; i < list.size(); ++i) + for (int i = 0; i < list.size(); ++i) { + // A malformed definition can attempt to pop the base context. Keep it + // as the fallback context instead of underflowing the stack. + if (m_contexts.size() <= 1) + break; m_contexts.pop_back(); + } if (extractObservableState(currentBlockState()) >= PersistentsStart) { // One or more contexts were popped during during a persistent state.