diff --git a/vm_eval.c b/vm_eval.c index bad5170431..230b96b115 100644 --- a/vm_eval.c +++ b/vm_eval.c @@ -45,14 +45,11 @@ static VALUE vm_call0_body(rb_execution_context_t* ec, struct rb_calling_info *c MJIT_FUNC_EXPORTED VALUE rb_vm_call0(rb_execution_context_t *ec, VALUE recv, ID id, int argc, const VALUE *argv, const rb_callable_method_entry_t *me, int kw_splat) { - return vm_call0_body( - ec, - &(struct rb_calling_info) { - Qundef, recv, argc, kw_splat, }, - &(struct rb_call_data) { - { 0, 0, me, me->def, vm_call_general, { 0, }, }, - { id, (kw_splat ? VM_CALL_KW_SPLAT : 0), argc, }, }, - argv); + struct rb_calling_info calling = { Qundef, recv, argc, kw_splat, }; + struct rb_call_info ci = { id, (kw_splat ? VM_CALL_KW_SPLAT : 0), argc, }; + struct rb_call_cache cc = { 0, 0, me, me->def, vm_call_general, { 0, }, }; + struct rb_call_data cd = { cc, ci, }; + return vm_call0_body(ec, &calling, &cd, argv); } static VALUE