diff --git a/plugins/libimhex/include/hex/pattern_language/ast_node.hpp b/plugins/libimhex/include/hex/pattern_language/ast_node.hpp index 6ba35e7fb..dbe994d03 100644 --- a/plugins/libimhex/include/hex/pattern_language/ast_node.hpp +++ b/plugins/libimhex/include/hex/pattern_language/ast_node.hpp @@ -1515,16 +1515,16 @@ namespace hex::pl { } [[nodiscard]] std::vector createPatterns(Evaluator *evaluator) const override { - std::vector patterns; - + auto &scope = *evaluator->getScope(0).scope; auto &body = evaluateCondition(evaluator) ? this->m_trueBody : this->m_falseBody; for (auto &node : body) { auto newPatterns = node->createPatterns(evaluator); - patterns.insert(patterns.end(), newPatterns.begin(), newPatterns.end()); + for (auto &pattern : newPatterns) + scope.push_back(pattern->clone()); } - return patterns; + return { }; } [[nodiscard]] ASTNode* getCondition() {