diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-05-20 17:54:07 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-05-20 17:54:07 +0900 |
| commit | 5c0b9b703c9d1a08d7219b057b809bda4bc89f8a (patch) | |
| tree | ab610a2988ef928c02bfc50e31aedc5a707f008e /src/kernel.c | |
| parent | 35ee85164dd19143d4b47a34f13ad2bb71fed369 (diff) | |
| download | mruby-5c0b9b703c9d1a08d7219b057b809bda4bc89f8a.tar.gz mruby-5c0b9b703c9d1a08d7219b057b809bda4bc89f8a.zip | |
primary mruby fiber implementation
Diffstat (limited to 'src/kernel.c')
| -rw-r--r-- | src/kernel.c | 10 |
1 files changed, 5 insertions, 5 deletions
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; } |
