diff --git a/racket/src/racket/src/jit.c b/racket/src/racket/src/jit.c index 04569951ef..155cb894f6 100644 --- a/racket/src/racket/src/jit.c +++ b/racket/src/racket/src/jit.c @@ -3235,10 +3235,13 @@ int scheme_generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int w case scheme_with_cont_mark_type: { Scheme_With_Continuation_Mark *wcm = (Scheme_With_Continuation_Mark *)obj; + mz_jit_unbox_state ubs; START_JIT_DATA(); LOG_IT(("wcm...\n")); + scheme_mz_unbox_save(jitter, &ubs); + /* Key: */ scheme_generate_non_tail(wcm->key, jitter, 0, 1, 0); /* sync'd below */ mz_pushr_p(JIT_R0); /* sync'd below */ @@ -3283,6 +3286,8 @@ int scheme_generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int w LOG_IT(("...in\n")); jitter->pushed_marks++; + + scheme_mz_unbox_restore(jitter, &ubs); return scheme_generate(wcm->body, jitter, is_tail, wcm_may_replace, multi_ok, orig_target, for_branch, for_values); diff --git a/racket/src/racket/src/validate.c b/racket/src/racket/src/validate.c index 60be18912b..afd64e6ae9 100644 --- a/racket/src/racket/src/validate.c +++ b/racket/src/racket/src/validate.c @@ -1721,8 +1721,6 @@ static int validate_expr(Mz_CPort *port, Scheme_Object *expr, Scheme_With_Continuation_Mark *wcm = (Scheme_With_Continuation_Mark *)expr; int r; - no_typed(need_local_type, port); - r = validate_expr(port, wcm->key, stack, tls, depth, letlimit, delta, num_toplevels, num_stxes, num_lifts, tl_use_map, tl_state, tl_timestamp,