summaryrefslogtreecommitdiffhomepage
path: root/src/codegen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen.c')
-rw-r--r--src/codegen.c3
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);
}