vm_insnhelper.h: drop OPT_CALL_FASTPATH macro support

because cc->call is NULL by default and it is not overridden by
vm_search_super_method if OPT_CALL_FASTPATH is 0. So this macro is not
just a switch for optimization but now it's mandatory.

vm_insnhelper.c: cosmetic change. Use boolean-ish `TRUE` instead of 1 to
specify `enabled` flag.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
k0kubun 2018-09-13 12:29:57 +00:00
parent f03e68edb8
commit 519c62fdc2
2 changed files with 2 additions and 10 deletions

View File

@ -2511,12 +2511,12 @@ vm_search_super_method(const rb_execution_context_t *ec, rb_control_frame_t *reg
if (!klass) {
/* bound instance method of module */
cc->aux.method_missing_reason = MISSING_SUPER;
CI_SET_FASTPATH(cc, vm_call_method_missing, 1);
CI_SET_FASTPATH(cc, vm_call_method_missing, TRUE);
}
else {
/* TODO: use inline cache */
cc->me = rb_callable_method_entry(klass, ci->mid);
CI_SET_FASTPATH(cc, vm_call_super_method, 1);
CI_SET_FASTPATH(cc, vm_call_super_method, TRUE);
}
}

View File

@ -178,17 +178,9 @@ enum vm_regan_acttype {
* because inline method cache does not care about receiver.
*/
#ifndef OPT_CALL_FASTPATH
#define OPT_CALL_FASTPATH 1
#endif
#if OPT_CALL_FASTPATH
#define CI_SET_FASTPATH(cc, func, enabled) do { \
if (LIKELY(enabled)) ((cc)->call = (func)); \
} while (0)
#else
#define CI_SET_FASTPATH(ci, func, enabled) /* do nothing */
#endif
#define GET_BLOCK_HANDLER() (GET_LEP()[VM_ENV_DATA_INDEX_SPECVAL])