diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-05-22 11:05:22 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-05-22 11:05:22 +0900 |
| commit | 2045a3529266e903d0db0c9e16081fe2fa01b9df (patch) | |
| tree | 33458e1f6953cf6851db4bcff85d4d899f04058e /mrbgems/mruby-fiber | |
| parent | 1cfd3fb9eb7d53b7f91126169ae48b7c64a8cd3e (diff) | |
| download | mruby-2045a3529266e903d0db0c9e16081fe2fa01b9df.tar.gz mruby-2045a3529266e903d0db0c9e16081fe2fa01b9df.zip | |
garbage collect context (fiber) properly
Diffstat (limited to 'mrbgems/mruby-fiber')
| -rw-r--r-- | mrbgems/mruby-fiber/src/fiber.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mrbgems/mruby-fiber/src/fiber.c b/mrbgems/mruby-fiber/src/fiber.c index e46e3cb02..c338b8b95 100644 --- a/mrbgems/mruby-fiber/src/fiber.c +++ b/mrbgems/mruby-fiber/src/fiber.c @@ -80,9 +80,9 @@ fiber_init(mrb_state *mrb, mrb_value self) f->cxt = (struct mrb_context*)mrb_malloc(mrb, sizeof(struct mrb_context)); *f->cxt = mrb_context_zero; + c = f->cxt; /* initialize VM stack */ - c = f->cxt; c->stbase = (mrb_value *)mrb_calloc(mrb, FIBER_STACK_INIT_SIZE, sizeof(mrb_value)); c->stend = c->stbase + FIBER_STACK_INIT_SIZE; c->stack = c->stbase; @@ -104,6 +104,8 @@ fiber_init(mrb_state *mrb, mrb_value self) ci[1] = ci[0]; c->ci++; /* push dummy callinfo */ + c->fib = f; + return self; } |
