0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00

Avoid using stack.

This commit is contained in:
Ondrej Filip 2011-03-27 23:27:37 +02:00
parent 4e712ec3b7
commit c454872f4e

View File

@ -27,15 +27,17 @@ static int make_pair(int i1, int i2)
struct f_tree *f_generate_rev_wcard(int from, int to, int expr) struct f_tree *f_generate_rev_wcard(int from, int to, int expr)
{ {
struct f_tree * ret = NULL; struct f_tree *ret = NULL, *last = NULL;
if(from <= to) {
while (from <= to) {
ret = f_new_tree(); ret = f_new_tree();
ret->from.type = ret->to.type = T_PAIR; ret->from.type = ret->to.type = T_PAIR;
ret->from.val.i = ret->to.val.i = make_pair(from, expr); ret->from.val.i = ret->to.val.i = make_pair(from, expr);
ret->left = f_generate_rev_wcard(from+1, to, expr); ret->left = last;
from++; last = ret;
} }
return ret; return ret;
} }
CF_DECLS CF_DECLS