convert macros into inline functions

For better readability.
This commit is contained in:
卜部昌平 2019-12-17 13:22:24 +09:00
parent d616926af9
commit ea717d1ce1

View File

@ -120,17 +120,20 @@ enum vm_regan_acttype {
* because inline method cache does not care about receiver. * because inline method cache does not care about receiver.
*/ */
#define CC_SET_FASTPATH(cc, func, enabled) do { \ static inline void
if (LIKELY(enabled)) ((cc)->call = (func)); \ CC_SET_FASTPATH(CALL_CACHE cc, vm_call_handler func, bool enabled)
} while (0) {
if (LIKELY(enabled)) {
cc->call = func;
}
}
#define CC_SET_ME(cc, newme) do { \ static inline void
CALL_CACHE ccx = (cc); \ CC_SET_ME(CALL_CACHE cc, const rb_callable_method_entry_t *me)
const rb_callable_method_entry_t *mex = (newme); \ {
const rb_method_definition_t *defx = mex ? mex->def : NULL; \ cc->me = me;
ccx->me = mex; \ cc->def = me ? me->def : NULL;
ccx->def = defx; \ }
} while (0)
#define GET_BLOCK_HANDLER() (GET_LEP()[VM_ENV_DATA_INDEX_SPECVAL]) #define GET_BLOCK_HANDLER() (GET_LEP()[VM_ENV_DATA_INDEX_SPECVAL])