diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-06-21 17:59:14 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-06-21 17:59:14 +0900 |
| commit | e8a4e4262a425d9e5e8e19c40bf987d491f73053 (patch) | |
| tree | 6cde64e941eb967eb458f5e1d14eae30a53ef869 | |
| parent | 464d3fc0a329ba045052b07fdbfbc3e37dc787d2 (diff) | |
| download | mruby-e8a4e4262a425d9e5e8e19c40bf987d491f73053.tar.gz mruby-e8a4e4262a425d9e5e8e19c40bf987d491f73053.zip | |
Add write barrier to protect proc reference from fiber; fix #3719
| -rw-r--r-- | mrbgems/mruby-fiber/src/fiber.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/mrbgems/mruby-fiber/src/fiber.c b/mrbgems/mruby-fiber/src/fiber.c index 8a6146dbe..0a6d92f67 100644 --- a/mrbgems/mruby-fiber/src/fiber.c +++ b/mrbgems/mruby-fiber/src/fiber.c @@ -125,6 +125,7 @@ fiber_init(mrb_state *mrb, mrb_value self) ci = c->ci; ci->target_class = p->target_class; ci->proc = p; + mrb_field_write_barrier(mrb, (struct RBasic*)mrb_obj_ptr(self), (struct RBasic*)p); ci->pc = p->body.irep->iseq; ci->nregs = p->body.irep->nregs; ci[1] = ci[0]; |
