diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-02-28 01:25:50 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-02-28 01:25:50 +0900 |
| commit | 90c54d1ead5eeec223d8da0b88ce88d3da9756ff (patch) | |
| tree | bab7cbc9a68a73a704c76c9ed54f3af4ba5e8a97 /src/gc.c | |
| parent | c39e2a4e5d966959a05fc61451ddf5419c9e67ba (diff) | |
| download | mruby-90c54d1ead5eeec223d8da0b88ce88d3da9756ff.tar.gz mruby-90c54d1ead5eeec223d8da0b88ce88d3da9756ff.zip | |
remove break altogether in ci loop
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -460,13 +460,15 @@ mark_context(mrb_state *mrb, struct mrb_context *c) for (i=0; i<e; i++) { mrb_gc_mark(mrb, (struct RBasic*)c->ensure[i]); } - /* mark closure */ - for (ci = c->cibase; ci <= c->ci; ci++) { - if (!ci) break; - mrb_gc_mark(mrb, (struct RBasic*)ci->env); - mrb_gc_mark(mrb, (struct RBasic*)ci->proc); - mrb_gc_mark(mrb, (struct RBasic*)ci->target_class); + /* mark VM stack */ + if (c->cibase) { + for (ci = c->cibase; ci <= c->ci; ci++) { + mrb_gc_mark(mrb, (struct RBasic*)ci->env); + mrb_gc_mark(mrb, (struct RBasic*)ci->proc); + mrb_gc_mark(mrb, (struct RBasic*)ci->target_class); + } } + /* mark fibers */ if (c->prev && c->prev->fib) { mrb_gc_mark(mrb, (struct RBasic*)c->prev->fib); } |
