From 1797a004ba9eea7a8fd28111fc566a55056d7600 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 11 May 2007 23:38:13 +0000 Subject: [PATCH] fix bug that causes meta-continuations to chain when they shouldn't svn: r6206 --- src/mzscheme/src/fun.c | 1 + src/mzscheme/src/salloc.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mzscheme/src/fun.c b/src/mzscheme/src/fun.c index ea21ea9e61..b41964280f 100644 --- a/src/mzscheme/src/fun.c +++ b/src/mzscheme/src/fun.c @@ -4794,6 +4794,7 @@ internal_call_cc (int argc, Scheme_Object *argv[]) especially important one to zero out (otherwise we build up chains). */ prompt_cont = NULL; + barrier_cont = NULL; if (scheme_setjmpup_relative(&cont->buf, cont, stack_start, sub_cont)) { /* We arrive here when the continuation is applied */ diff --git a/src/mzscheme/src/salloc.c b/src/mzscheme/src/salloc.c index 0f349d750e..81b79d520e 100644 --- a/src/mzscheme/src/salloc.c +++ b/src/mzscheme/src/salloc.c @@ -1458,10 +1458,10 @@ Scheme_Object *scheme_dump_gc_stats(int c, Scheme_Object *p[]) scheme_end_atomic(); return scheme_make_integer_value((long)p[1]); } - } else if (SCHEME_INTP(p[0])) { + } else if (c && SCHEME_INTP(p[0])) { trace_for_tag = SCHEME_INT_VAL(p[0]); flags |= GC_DUMP_SHOW_TRACE; - } else if (SCHEME_THREADP(p[0])) { + } else if (c && SCHEME_THREADP(p[0])) { Scheme_Thread *t = (Scheme_Thread *)p[0]; void **var_stack, *limit; long delta;