fix bug that causes meta-continuations to chain when they shouldn't
svn: r6206
This commit is contained in:
parent
8e95c32ece
commit
1797a004ba
|
@ -4794,6 +4794,7 @@ internal_call_cc (int argc, Scheme_Object *argv[])
|
||||||
especially important one to zero out (otherwise we build up
|
especially important one to zero out (otherwise we build up
|
||||||
chains). */
|
chains). */
|
||||||
prompt_cont = NULL;
|
prompt_cont = NULL;
|
||||||
|
barrier_cont = NULL;
|
||||||
|
|
||||||
if (scheme_setjmpup_relative(&cont->buf, cont, stack_start, sub_cont)) {
|
if (scheme_setjmpup_relative(&cont->buf, cont, stack_start, sub_cont)) {
|
||||||
/* We arrive here when the continuation is applied */
|
/* We arrive here when the continuation is applied */
|
||||||
|
|
|
@ -1458,10 +1458,10 @@ Scheme_Object *scheme_dump_gc_stats(int c, Scheme_Object *p[])
|
||||||
scheme_end_atomic();
|
scheme_end_atomic();
|
||||||
return scheme_make_integer_value((long)p[1]);
|
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]);
|
trace_for_tag = SCHEME_INT_VAL(p[0]);
|
||||||
flags |= GC_DUMP_SHOW_TRACE;
|
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];
|
Scheme_Thread *t = (Scheme_Thread *)p[0];
|
||||||
void **var_stack, *limit;
|
void **var_stack, *limit;
|
||||||
long delta;
|
long delta;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user