Skip to content

Commit 93d8029

Browse files
committed
Extend VM stack just in case; ref #3551
1 parent 071164b commit 93d8029

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

src/vm.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1202,8 +1202,10 @@ mrb_vm_exec(mrb_state *mrb, struct RProc *proc, mrb_code *pc)
12021202
else {
12031203
mrb_value blk = regs[bidx];
12041204
if (!mrb_nil_p(blk) && mrb_type(blk) != MRB_TT_PROC) {
1205-
if(bidx >= mrb->c->ci->nregs)
1205+
if(bidx >= mrb->c->ci->nregs) {
1206+
stack_extend(mrb, bidx+1, mrb->c->ci->nregs);
12061207
mrb->c->ci->nregs = bidx+1;
1208+
}
12071209
regs[bidx] = mrb_convert_type(mrb, blk, MRB_TT_PROC, "Proc", "to_proc");
12081210
}
12091211
}
@@ -1439,8 +1441,10 @@ mrb_vm_exec(mrb_state *mrb, struct RProc *proc, mrb_code *pc)
14391441
}
14401442
blk = regs[bidx];
14411443
if (!mrb_nil_p(blk) && mrb_type(blk) != MRB_TT_PROC) {
1442-
if(bidx >= ci->nregs)
1444+
if(bidx >= ci->nregs) {
1445+
stack_extend(mrb, bidx+1, ci->nregs);
14431446
ci->nregs = bidx+1;
1447+
}
14441448
regs[bidx] = mrb_convert_type(mrb, blk, MRB_TT_PROC, "Proc", "to_proc");
14451449
ci = mrb->c->ci;
14461450
}

0 commit comments

Comments
 (0)