summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/vm.c4
1 files changed, 1 insertions, 3 deletions
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;
}