Fix some bugs in filter interpret.

This commit is contained in:
Ondrej Zajicek 2008-11-16 22:16:04 +01:00
parent ebacaf6f7b
commit 44711e0ca2

View file

@ -655,7 +655,7 @@ interpret(struct f_inst *what)
ONEARG; ONEARG;
res = v1; res = v1;
res.type |= T_RETURN; res.type |= T_RETURN;
break; return res;
case P('c','a'): /* CALL: this is special: if T_RETURN and returning some value, mask it out */ case P('c','a'): /* CALL: this is special: if T_RETURN and returning some value, mask it out */
ONEARG; ONEARG;
res = interpret(what->a2.p); res = interpret(what->a2.p);
@ -676,7 +676,10 @@ interpret(struct f_inst *what)
} }
} }
/* It is actually possible to have t->data NULL */ /* It is actually possible to have t->data NULL */
return interpret(t->data);
res = interpret(t->data);
if (res.type & T_RETURN)
return res;
} }
break; break;
case P('i','M'): /* IP.MASK(val) */ case P('i','M'): /* IP.MASK(val) */