The ensure stack may be empty at OP_EPOP; fix 1st part of #3809

This commit is contained in:
Yukihiro "Matz" Matsumoto
2017-09-11 22:46:34 +09:00
parent 2a1e616e4d
commit 3d8c1a7e97
+6 -3
View File
@@ -1322,10 +1322,13 @@ RETRY_TRY_BLOCK:
mrb_callinfo *ci, *nci;
mrb_value self = regs[0];
/* temporary limitation */
mrb_assert(a==1);
proc = mrb->c->ensure[--mrb->c->eidx];
mrb_assert(a==1); /* temporary limitation */
ci = mrb->c->ci;
if (mrb->c->eidx == ci->epos) {
NEXT;
}
proc = mrb->c->ensure[--mrb->c->eidx];
nci = cipush(mrb);
nci->mid = ci->mid;
nci->argc = 0;