From: Vsevolod Stakhov Date: Thu, 19 Mar 2015 11:50:04 +0000 (+0000) Subject: Finish expression evaluation. X-Git-Tag: 0.9.0~465 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=58a48db6784c101572b37ad94d2f6b1e586054a6;p=rspamd.git Finish expression evaluation. --- diff --git a/src/libutil/expression.c b/src/libutil/expression.c index 113b87eca..928bfad32 100644 --- a/src/libutil/expression.c +++ b/src/libutil/expression.c @@ -552,7 +552,7 @@ rspamd_process_expression (struct rspamd_expression *expr, gpointer data) struct rspamd_expression_elt *elt, *st_elt[2], *ev, *lim = NULL, *cmp_op = NULL, *check; guint i, j, cmp_pos = 0; - gint cur_value = 0; + gint cur_value = 0, ret = 0; gboolean done = FALSE; g_assert (expr != NULL); @@ -776,7 +776,18 @@ rspamd_process_expression (struct rspamd_expression *expr, gpointer data) } } - return 0; + g_assert (expr->expression_stack->len == 1); + ev = rspamd_expr_stack_pop (expr); + ret = ev->value; + + /* Cleanup */ + for (i = 0; i < expr->expressions->len; i ++) { + elt = &g_array_index (expr->expressions, struct rspamd_expression_elt, i); + elt->value = 0; + elt->flags = 0; + } + + return ret; } GString *