diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-18 12:41:51 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-18 12:41:51 +0900 |
| commit | 4c690b23a6f9ec9fa4dd2c9893da59edbaba2647 (patch) | |
| tree | 48a65bea4ccd2114db7a89d03e39fd0fd86b73f7 | |
| parent | 9201af7d36a6537c6d867d2b4386fe443edddcea (diff) | |
| download | mruby-4c690b23a6f9ec9fa4dd2c9893da59edbaba2647.tar.gz mruby-4c690b23a6f9ec9fa4dd2c9893da59edbaba2647.zip | |
add fiber assertion from #1865 patch
| -rw-r--r-- | mrbgems/mruby-fiber/src/fiber.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/mrbgems/mruby-fiber/src/fiber.c b/mrbgems/mruby-fiber/src/fiber.c index a2ce52954..eb09d2b26 100644 --- a/mrbgems/mruby-fiber/src/fiber.c +++ b/mrbgems/mruby-fiber/src/fiber.c @@ -3,6 +3,8 @@ #include "mruby/class.h" #include "mruby/proc.h" +#define fiber_ptr(o) ((struct RFiber*)mrb_ptr(o)) + #define FIBER_STACK_INIT_SIZE 64 #define FIBER_CI_INIT_SIZE 8 @@ -62,7 +64,7 @@ static mrb_value fiber_init(mrb_state *mrb, mrb_value self) { static const struct mrb_context mrb_context_zero = { 0 }; - struct RFiber *f = (struct RFiber*)mrb_ptr(self); + struct RFiber *f = fiber_ptr(self); struct mrb_context *c; struct RProc *p; mrb_callinfo *ci; @@ -114,8 +116,9 @@ fiber_init(mrb_state *mrb, mrb_value self) static struct mrb_context* fiber_check(mrb_state *mrb, mrb_value fib) { - struct RFiber *f = (struct RFiber*)mrb_ptr(fib); + struct RFiber *f = fiber_ptr(fib); + mrb_assert(f->tt == MRB_TT_FIBER); if (!f->cxt) { mrb_raise(mrb, E_ARGUMENT_ERROR, "uninitialized Fiber"); } |
