diff --git a/src/vm.c b/src/vm.c index c65d86d8b..45e05268c 100644 --- a/src/vm.c +++ b/src/vm.c @@ -743,13 +743,11 @@ mrb_yield_with_class(mrb_state *mrb, mrb_value b, mrb_int argc, const mrb_value if (MRB_PROC_CFUNC_P(p)) { val = MRB_PROC_CFUNC(p)(mrb, self); mrb->c->stack = mrb->c->ci->stackent; + cipop(mrb); } else { - ptrdiff_t cioff = mrb->c->ci - mrb->c->cibase; val = mrb_run(mrb, p, self); - mrb->c->ci = mrb->c->cibase + cioff; } - cipop(mrb); return val; }