From f6d539eabd305d40afe18639d2e19e0fb8dafc55 Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Sat, 26 May 2012 11:18:16 +0900 Subject: clear arena_idx after exiting scope; close #195 --- src/codegen.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/codegen.c b/src/codegen.c index 5e2b7083f..11e9eb236 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -64,6 +64,7 @@ typedef struct scope { int nlocals; int nregs; + int ai; int idx; } codegen_scope; @@ -1849,6 +1850,7 @@ scope_new(mrb_state *mrb, codegen_scope *prev, node *lv) p->lv = lv; p->sp += node_len(lv)+2; p->nlocals = p->sp; + p->ai = mrb->arena_idx; p->idx = mrb->irep_len++; @@ -1882,6 +1884,7 @@ scope_finish(codegen_scope *s, int idx) irep->nlocals = s->nlocals; irep->nregs = s->nregs; + s->mrb->arena_idx = s->ai; mrb_pool_close(s->mpool); } -- cgit v1.2.3