Add missing regs update

mrb_vm_define_class() may realloc() mrb->c->stack because it calls
mrb_funcall() for inherited hook. If mrb->c->stack is realloc()-ed, regs
refers orphan address.
This commit is contained in:
Kouhei Sutou
2016-03-25 00:25:48 +09:00
parent dd072b5364
commit c69cba2ad9
+1
View File
@@ -2271,6 +2271,7 @@ RETRY_TRY_BLOCK:
base = mrb_obj_value(mrb->c->ci->target_class);
}
c = mrb_vm_define_class(mrb, base, super, id);
regs = mrb->c->stack;
regs[a] = mrb_obj_value(c);
ARENA_RESTORE(mrb, ai);
NEXT;