diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-05-26 11:18:16 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-05-26 11:18:16 +0900 |
| commit | f6d539eabd305d40afe18639d2e19e0fb8dafc55 (patch) | |
| tree | da04c5697e45b10599daa1e69af545de1c3aeb00 | |
| parent | f4f69489610014f92b8885640360035e202e2537 (diff) | |
| download | mruby-f6d539eabd305d40afe18639d2e19e0fb8dafc55.tar.gz mruby-f6d539eabd305d40afe18639d2e19e0fb8dafc55.zip | |
clear arena_idx after exiting scope; close #195
| -rw-r--r-- | src/codegen.c | 3 |
1 files changed, 3 insertions, 0 deletions
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); } |
