From 4c690b23a6f9ec9fa4dd2c9893da59edbaba2647 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 18 Mar 2014 12:41:51 +0900 Subject: add fiber assertion from #1865 patch --- mrbgems/mruby-fiber/src/fiber.c | 7 +++++-- 1 file 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"); } -- cgit v1.2.3