From 445103115a99e427be727ead070c2700ed4175d6 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Fri, 10 Apr 2015 11:36:41 +0200 Subject: Fix crash bug when unrolling in the token handler empties the parser stack --- src/core/parser/stack/Stack.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/core/parser/stack/Stack.cpp b/src/core/parser/stack/Stack.cpp index 41ced2a..d37f178 100644 --- a/src/core/parser/stack/Stack.cpp +++ b/src/core/parser/stack/Stack.cpp @@ -983,7 +983,7 @@ void StackImpl::handleToken(const Token &token) std::vector pendingClose = pendingCloseTokens(token.id); // Iterate until the stack can no longer be unwound - while (true) { + while (!stack.empty()) { LoggerFork loggerFork = logger().fork(); bool hadError = false; @@ -1032,6 +1032,9 @@ void StackImpl::handleToken(const Token &token) return; } } + + // Issue an error, because the token was not handled + strayTokenError(token, descr, logger()); } void StackImpl::handleFieldEnd(bool endRange) -- cgit v1.2.3