diff --git a/src/mzscheme/src/jit.c b/src/mzscheme/src/jit.c index 7ccd3cb2ea..3b8fc635fd 100644 --- a/src/mzscheme/src/jit.c +++ b/src/mzscheme/src/jit.c @@ -6201,6 +6201,7 @@ static int generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int m jit_ldxi_p(JIT_R2, JIT_R2, WORDS_TO_BYTES(pos)); CHECK_LIMIT(); + JIT_UPDATE_THREAD_RSPTR_IF_NEEDED(); mz_prepare(1); jit_pusharg_p(JIT_R2); (void)mz_finish(make_global_ref); diff --git a/src/mzscheme/src/struct.c b/src/mzscheme/src/struct.c index f0cea1cedc..dfba030e55 100644 --- a/src/mzscheme/src/struct.c +++ b/src/mzscheme/src/struct.c @@ -737,6 +737,11 @@ static Scheme_Object *prop_pred(int argc, Scheme_Object **args, Scheme_Object *p Scheme_Struct_Type *stype; Scheme_Object *prop = SCHEME_PRIM_CLOSURE_ELS(prim)[0]; + if (!args[0]) { + printf("%p\n", prim); + return scheme_false; + } + if (SCHEME_STRUCTP(args[0])) stype = ((Scheme_Structure *)args[0])->stype; else if (SAME_TYPE(SCHEME_TYPE(args[0]), scheme_struct_type_type))