vm_call_refined: no call vm_cc_fill
This changeset reduces the generated binary of vm_call_method_each_type from 2,442 bytes to 2,378 bytes on my machine, accroding to nm(1).
This commit is contained in:
parent
be5dfdd8a2
commit
fb3f1f95e8
Notes:
git
2020-06-09 09:53:18 +09:00
@ -3042,12 +3042,10 @@ vm_call_refined(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_c
|
|||||||
const rb_callable_method_entry_t *cme = search_refined_method(ec, cfp, cd);
|
const rb_callable_method_entry_t *cme = search_refined_method(ec, cfp, cd);
|
||||||
|
|
||||||
if (cme != NULL) {
|
if (cme != NULL) {
|
||||||
struct rb_callcache cc_body;
|
return vm_call_method(ec, cfp, calling, &(struct rb_call_data) {
|
||||||
struct rb_call_data cd_body = {
|
|
||||||
.ci = cd->ci,
|
.ci = cd->ci,
|
||||||
.cc = vm_cc_fill(&cc_body, Qundef, cme, 0),
|
.cc = &VM_CC_ON_STACK(Qundef, vm_call_general, { 0 }, cme),
|
||||||
};
|
});
|
||||||
return vm_call_method(ec, cfp, calling, &cd_body);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return vm_call_method_nome(ec, cfp, calling, cd);
|
return vm_call_method_nome(ec, cfp, calling, cd);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user