From e7249e44653a7904eae1c422503015a2ee962d76 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Thu, 26 Mar 2015 23:38:06 +0000 Subject: [PATCH] Fix order of N-ary operators merging. --- src/libutil/expression.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/libutil/expression.c b/src/libutil/expression.c index af8a54fff..b7f178b00 100644 --- a/src/libutil/expression.c +++ b/src/libutil/expression.c @@ -354,7 +354,7 @@ rspamd_ast_add_node (GPtrArray *operands, struct rspamd_expression_elt *op) if (test_elt->type == ELT_OP && test_elt->p.op == op->p.op) { /* Add children */ - g_node_append (test, a1); + g_node_prepend (test, a1); rspamd_expr_stack_elt_push (operands, a2); return; } @@ -418,16 +418,10 @@ rspamd_ast_priority_cmp (GNode *a, GNode *b) static gboolean rspamd_ast_resort_traverse (GNode *node, gpointer unused) { - GNode *cur; - - cur = node->children; - - if (cur) { - DL_SORT (cur, rspamd_ast_priority_cmp); + if (node->children) { + DL_SORT (node->children, rspamd_ast_priority_cmp); } - node->children = cur; - return FALSE; } -- 2.39.5