Project

General

Profile

Bug #9609 ยป 0001-vm_eval.c-fix-misplaced-GC-guard.patch

normalperson (Eric Wong), 03/07/2014 10:06 AM

View differences:

vm_eval.c
{
VALUE new_args = rb_ary_new4(ci->argc, argv);
RB_GC_GUARD(new_args);
rb_ary_unshift(new_args, ID2SYM(ci->mid));
th->passed_block = ci->blockptr;
return rb_funcall2(ci->recv, idMethodMissing, ci->argc+1, RARRAY_PTR(new_args));
ret = rb_funcall2(ci->recv, idMethodMissing, ci->argc+1, RARRAY_PTR(new_args));
RB_GC_GUARD(new_args);
return ret;
}
case VM_METHOD_TYPE_OPTIMIZED:
switch (ci->me->def->body.optimize_type) {
......
check_funcall_exec(struct rescue_funcall_args *args)
{
VALUE new_args = rb_ary_new4(args->argc, args->argv);
VALUE ret;
RB_GC_GUARD(new_args);
rb_ary_unshift(new_args, args->sym);
return rb_funcall2(args->recv, idMethodMissing,
ret = rb_funcall2(args->recv, idMethodMissing,
args->argc+1, RARRAY_PTR(new_args));
RB_GC_GUARD(new_args);
return ret;
}
static VALUE
    (1-1/1)