From 355b99c68fc8db8570301e091dc16738a1de65cd Mon Sep 17 00:00:00 2001 From: WerWolv Date: Fri, 21 Jan 2022 19:06:19 +0100 Subject: [PATCH] pattern: Fixed continue and break statements in structs --- lib/libimhex/include/hex/pattern_language/ast_node.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/libimhex/include/hex/pattern_language/ast_node.hpp b/lib/libimhex/include/hex/pattern_language/ast_node.hpp index 3ddb65ad0..0e381f8c2 100644 --- a/lib/libimhex/include/hex/pattern_language/ast_node.hpp +++ b/lib/libimhex/include/hex/pattern_language/ast_node.hpp @@ -1009,6 +1009,8 @@ namespace hex::pl { LogConsole::abortEvaluation(hex::format("array grew past set limit of {}", limit), this); for (u64 i = 0; i < entryCount; i++) { + evaluator->setCurrentControlFlowStatement(ControlFlowStatement::None); + auto patterns = this->m_type->createPatterns(evaluator); if (!patterns.empty()) @@ -1028,6 +1030,8 @@ namespace hex::pl { if (entryIndex > limit) LogConsole::abortEvaluation(hex::format("array grew past set limit of {}", limit), this); + evaluator->setCurrentControlFlowStatement(ControlFlowStatement::None); + auto patterns = this->m_type->createPatterns(evaluator); if (!patterns.empty()) @@ -1048,6 +1052,8 @@ namespace hex::pl { if (entryIndex > limit) LogConsole::abortEvaluation(hex::format("array grew past set limit of {}", limit), this); + evaluator->setCurrentControlFlowStatement(ControlFlowStatement::None); + auto patterns = this->m_type->createPatterns(evaluator); if (!patterns.empty()) {