Bug #13412 » ensure_stack.patch
vm.c | ||
---|---|---|
return vm_exec(th);
|
||
}
|
||
static void
|
||
ensure_stack(int n, ...)
|
||
{
|
||
if (n <= 0) return;
|
||
ensure_stack(n - 1, 0, 1, 2, 3, 4, 5, 6, 7);
|
||
}
|
||
static VALUE
|
||
invoke_bmethod(rb_thread_t *th, const rb_iseq_t *iseq, VALUE self, const struct rb_captured_block *captured, const rb_callable_method_entry_t *me, VALUE type, int opt_pc)
|
||
{
|
||
... | ... | |
int arg_size = iseq->body->param.size;
|
||
VALUE ret;
|
||
ensure_stack(32);
|
||
vm_push_frame(th, iseq, type | VM_FRAME_FLAG_FINISH | VM_FRAME_FLAG_BMETHOD, self,
|
||
VM_GUARDED_PREV_EP(captured->ep),
|
||
(VALUE)me,
|