]> source.dussan.org Git - rspamd.git/commitdiff
Fix order of N-ary operators merging.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 26 Mar 2015 23:38:06 +0000 (23:38 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 26 Mar 2015 23:38:06 +0000 (23:38 +0000)
src/libutil/expression.c

index af8a54fff9db7ffaeb1d489777d0fa3043fe4e4e..b7f178b00213e439176534e999b2cac37f9c9474 100644 (file)
@@ -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;
 }