From 54fad93312fcdf07ab3ebbe3d807c57c71440cd2 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Fri, 5 Nov 2021 15:55:20 +0100 Subject: evaluate: grab reference in set expression evaluation Do not clone expression when evaluation a set expression, grabbing the reference counter to reuse the object is sufficient. Signed-off-by: Pablo Neira Ayuso --- src/evaluate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/evaluate.c b/src/evaluate.c index fd7818da..eebd9921 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -1439,7 +1439,7 @@ static int expr_evaluate_set(struct eval_ctx *ctx, struct expr **expr) list_for_each_entry(j, &i->left->key->expressions, list) { new = mapping_expr_alloc(&i->location, expr_get(j), - expr_clone(i->right)); + expr_get(i->right)); list_add_tail(&new->list, &set->expressions); set->size++; } @@ -1457,7 +1457,7 @@ static int expr_evaluate_set(struct eval_ctx *ctx, struct expr **expr) if (elem->etype == EXPR_SET_ELEM && elem->key->etype == EXPR_SET) { - struct expr *new = expr_clone(elem->key); + struct expr *new = expr_get(elem->key); set->set_flags |= elem->key->set_flags; list_replace(&i->list, &new->list); -- cgit v1.2.3