From d8a93a6d9a08ec28844e89236ccdb8489f1d3216 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 9 Feb 2008 15:39:14 +0000 Subject: [PATCH] re-enable sfs compiler pass (bug fixed) svn: r8605 --- src/mzscheme/src/eval.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/mzscheme/src/eval.c b/src/mzscheme/src/eval.c index 8da7938dca..158d26c731 100644 --- a/src/mzscheme/src/eval.c +++ b/src/mzscheme/src/eval.c @@ -3258,8 +3258,6 @@ Scheme_Object *scheme_sfs(Scheme_Object *o, SFS_Info *info, int max_let_depth) { int init, i; - return o; - SFS_LOG(printf("sfs %d\n", SCHEME_TYPE(o))); if (!info) { @@ -3836,11 +3834,12 @@ static Scheme_Object *sfs_let_void(Scheme_Object *o, SFS_Info *info) { Scheme_Let_Void *lv = (Scheme_Let_Void *)o; Scheme_Object *body; - int i, pos; + int i, pos, save_mnt; Scheme_Object *vec; scheme_sfs_push(info, lv->count, 1); pos = info->stackpos; + save_mnt = info->max_nontail; if (!info->pass) { vec = scheme_make_vector(lv->count + 1, NULL); @@ -3853,6 +3852,7 @@ static Scheme_Object *sfs_let_void(Scheme_Object *o, SFS_Info *info) info->max_used[pos + i] = SCHEME_INT_VAL(SCHEME_VEC_ELS(vec)[i]); info->max_calls[pos + i] = SCHEME_INT_VAL(SCHEME_VEC_ELS(vec)[lv->count]); } + info->max_nontail = SCHEME_INT_VAL(SCHEME_VEC_ELS(vec)[lv->count]); } body = scheme_sfs_expr(lv->body, info, -1); @@ -3869,6 +3869,8 @@ static Scheme_Object *sfs_let_void(Scheme_Object *o, SFS_Info *info) n = info->max_used[pos + i]; SCHEME_VEC_ELS(vec)[i] = scheme_make_integer(n); } + } else { + info->max_nontail = save_mnt; } lv->body = body;