diff options
| author | Lian Cheng <[email protected]> | 2012-12-12 21:05:02 +0800 |
|---|---|---|
| committer | Lian Cheng <[email protected]> | 2012-12-12 21:05:02 +0800 |
| commit | 2fa0be2a3013478275fb392b267a99ae2425be65 (patch) | |
| tree | 25f05c3212ddc635a54dc26b70bea04a86b1f683 /src/codegen.c | |
| parent | 975adbfb5fde10f797480efb3f97b6d8bf659443 (diff) | |
| download | mruby-2fa0be2a3013478275fb392b267a99ae2425be65.tar.gz mruby-2fa0be2a3013478275fb392b267a99ae2425be65.zip | |
Call mrb_gc_arena_save/mrb_gc_arena_restore instead of manipulating arena index directly
Diffstat (limited to 'src/codegen.c')
| -rw-r--r-- | src/codegen.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/codegen.c b/src/codegen.c index 75ccce648..4244370e5 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -1812,10 +1812,10 @@ codegen(codegen_scope *s, node *tree, int val) if (val) { char *p = (char*)tree->car; size_t len = (intptr_t)tree->cdr; - int ai = s->mrb->arena_idx; + int ai = mrb_gc_arena_save(s->mrb); int off = new_lit(s, mrb_str_new(s->mrb, p, len)); - s->mrb->arena_idx = ai; + mrb_gc_arena_restore(s->mrb, ai); genop(s, MKOP_ABx(OP_STRING, cursp(), off)); push(); } @@ -2083,7 +2083,7 @@ scope_new(mrb_state *mrb, codegen_scope *prev, node *lv) p->lv = lv; p->sp += node_len(lv)+1; /* add self */ p->nlocals = p->sp; - p->ai = mrb->arena_idx; + p->ai = mrb_gc_arena_save(mrb); p->filename = prev->filename; if (p->filename) { @@ -2118,7 +2118,7 @@ scope_finish(codegen_scope *s) irep->nlocals = s->nlocals; irep->nregs = s->nregs; - mrb->arena_idx = s->ai; + mrb_gc_arena_restore(mrb, s->ai); mrb_pool_close(s->mpool); } |
