summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-03-18 12:41:51 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-03-18 12:41:51 +0900
commit4c690b23a6f9ec9fa4dd2c9893da59edbaba2647 (patch)
tree48a65bea4ccd2114db7a89d03e39fd0fd86b73f7
parent9201af7d36a6537c6d867d2b4386fe443edddcea (diff)
downloadmruby-4c690b23a6f9ec9fa4dd2c9893da59edbaba2647.tar.gz
mruby-4c690b23a6f9ec9fa4dd2c9893da59edbaba2647.zip
add fiber assertion from #1865 patch
-rw-r--r--mrbgems/mruby-fiber/src/fiber.c7
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");
}