diff --git a/src/builtin_functions.c b/src/builtin_functions.c index 211def40ca9c6dce7d92f6bf21be390d81a5cb92..9827b8f04949d54de10810b2c01f18ded373f262 100644 --- a/src/builtin_functions.c +++ b/src/builtin_functions.c @@ -5,7 +5,7 @@ \*/ /**/ #include "global.h" -RCSID("$Id: builtin_functions.c,v 1.247 2000/03/26 01:55:11 mast Exp $"); +RCSID("$Id: builtin_functions.c,v 1.248 2000/03/27 04:57:53 hubbe Exp $"); #include "interpret.h" #include "svalue.h" #include "pike_macros.h" @@ -5110,11 +5110,13 @@ void f_filter(INT32 args) push_svalue(sp-args); f_indices(1); - sp[-args-3]=*--sp; + sp--; + sp[-args-2]=*sp; dmalloc_touch_svalue(sp); push_svalue(sp-args); f_values(1); - sp[-args-2]=*--sp; + sp--; + sp[-args-1]=*sp; dmalloc_touch_svalue(sp); assign_svalue(sp-args,sp-args-1); /* loop values only */