]> source.dussan.org Git - rspamd.git/commitdiff
Optimize expressions earlier.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 27 Mar 2015 14:14:47 +0000 (14:14 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 27 Mar 2015 14:14:47 +0000 (14:14 +0000)
src/libutil/expression.c

index ed52226ee12a76b7911626fb0d9489e450ae9494..8696c1cc6a5f1db1ccf16065d3540969d343a41f 100644 (file)
@@ -848,16 +848,15 @@ rspamd_ast_process_node (struct rspamd_expression *expr, GNode *node,
                        /* Save limit if we've found it */
                        val = rspamd_ast_process_node (expr, cld, data);
 
-                       if (acc != G_MININT || cld->next == NULL) {
-                               acc = rspamd_ast_do_op (elt, val, acc);
-
-                               if (rspamd_ast_node_done (elt, parelt, acc, lim)) {
-                                       return acc;
-                               }
-                       }
-                       else {
+                       if (acc == G_MININT) {
                                acc = val;
                        }
+
+                       acc = rspamd_ast_do_op (elt, val, acc);
+
+                       if (rspamd_ast_node_done (elt, parelt, acc, lim)) {
+                               return acc;
+                       }
                }
                break;
        }