don't generate a tail-jump with mis-matched param lengths

This commit is contained in:
Alex Shinn 2011-08-23 01:49:11 +09:00
parent fad9db31ae
commit bb7b66b5ba

4
vm.c
View file

@ -416,7 +416,9 @@ static void generate_app (sexp ctx, sexp name, sexp loc, sexp lam, sexp app) {
#if SEXP_USE_TAIL_JUMPS
else if (sexp_context_tailp(ctx) && sexp_refp(sexp_car(app))
&& name == sexp_ref_name(sexp_car(app))
&& loc == sexp_ref_loc(sexp_car(app)))
&& loc == sexp_ref_loc(sexp_car(app))
&& (sexp_length(ctx, sexp_cdr(app))
== sexp_length(ctx, sexp_lambda_params(lam))))
generate_tail_jump(ctx, name, loc, lam, app);
#endif
else