From 3513d048ab1fa736261a453508ab0eb80baf07e1 Mon Sep 17 00:00:00 2001 From: Anton Alkin Date: Tue, 19 Aug 2025 17:54:27 +0200 Subject: [PATCH] DPL Analysis: fix for retrieving placeholder nodes in filters parsed from strings --- Framework/Core/include/Framework/Expressions.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Framework/Core/include/Framework/Expressions.h b/Framework/Core/include/Framework/Expressions.h index e2fdd0493d033..5a889e9ae26ec 100644 --- a/Framework/Core/include/Framework/Expressions.h +++ b/Framework/Core/include/Framework/Expressions.h @@ -168,16 +168,18 @@ struct PlaceholderNode : LiteralNode { template PlaceholderNode(T defaultValue, std::string&& path) : LiteralNode{defaultValue}, - name{path} + stored_name{path}, + name{stored_name} { retrieve = [](InitContext& context, char const* name) { return LiteralNode::var_t{context.options().get(name)}; }; } void reset(InitContext& context) { - value = retrieve(context, name.data()); + value = retrieve(context, stored_name.empty() ? name.data() : stored_name.data()); } + std::string stored_name; std::string const& name; LiteralNode::var_t (*retrieve)(InitContext&, char const*); };