From 5c0b9b703c9d1a08d7219b057b809bda4bc89f8a Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 20 May 2013 17:54:07 +0900 Subject: primary mruby fiber implementation --- src/kernel.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/kernel.c') diff --git a/src/kernel.c b/src/kernel.c index 033ce283a..af4806378 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -214,19 +214,19 @@ mrb_f_send(mrb_state *mrb, mrb_value self) static mrb_value mrb_f_block_given_p_m(mrb_state *mrb, mrb_value self) { - mrb_callinfo *ci = mrb->ci; + mrb_callinfo *ci = mrb->c->ci; mrb_value *bp; mrb_bool given_p; - bp = mrb->stbase + ci->stackidx + 1; + bp = mrb->c->stbase + ci->stackidx + 1; ci--; - if (ci <= mrb->cibase) { + if (ci <= mrb->c->cibase) { given_p = 0; } else { /* block_given? called within block; check upper scope */ if (ci->proc->env && ci->proc->env->stack) { - given_p = !(ci->proc->env->stack == mrb->stbase || + given_p = !(ci->proc->env->stack == mrb->c->stbase || mrb_nil_p(ci->proc->env->stack[1])); } else { @@ -894,7 +894,7 @@ mrb_f_raise(mrb_state *mrb, mrb_value self) /* fall through */ default: exc = mrb_make_exception(mrb, argc, a); - mrb_obj_iv_set(mrb, mrb_obj_ptr(exc), mrb_intern2(mrb, "lastpc", 6), mrb_voidp_value(mrb->ci->pc)); + mrb_obj_iv_set(mrb, mrb_obj_ptr(exc), mrb_intern2(mrb, "lastpc", 6), mrb_voidp_value(mrb->c->ci->pc)); mrb_exc_raise(mrb, exc); break; } -- cgit v1.2.3