mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
Set a fast path for forwardable iseqs
This commit is contained in:
parent
cfc5646cdc
commit
a25dd5b12c
2 changed files with 34 additions and 7 deletions
|
@ -215,7 +215,12 @@ vm_call0_body(rb_execution_context_t *ec, struct rb_calling_info *calling, const
|
|||
*reg_cfp->sp++ = argv[i];
|
||||
}
|
||||
|
||||
vm_call_iseq_setup(ec, reg_cfp, calling);
|
||||
if (ISEQ_BODY(def_iseq_ptr(vm_cc_cme(cc)->def))->param.flags.forwardable) {
|
||||
vm_call_iseq_fwd_setup(ec, reg_cfp, calling);
|
||||
}
|
||||
else {
|
||||
vm_call_iseq_setup(ec, reg_cfp, calling);
|
||||
}
|
||||
VM_ENV_FLAGS_SET(ec->cfp->ep, VM_FRAME_FLAG_FINISH);
|
||||
return vm_exec(ec); // CHECK_INTS in this function
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue