зеркало из https://github.com/github/ruby.git
Improve explanation of FCALL and VCALL
This commit is contained in:
Родитель
4ac8d11724
Коммит
175538e433
|
@ -13,19 +13,19 @@
|
|||
#include "shape.h"
|
||||
|
||||
enum vm_call_flag_bits {
|
||||
VM_CALL_ARGS_SPLAT_bit, /* m(*args) */
|
||||
VM_CALL_ARGS_BLOCKARG_bit, /* m(&block) */
|
||||
VM_CALL_FCALL_bit, /* m(...) */
|
||||
VM_CALL_VCALL_bit, /* m */
|
||||
VM_CALL_ARGS_SIMPLE_bit, /* (ci->flag & (SPLAT|BLOCKARG)) && blockiseq == NULL && ci->kw_arg == NULL */
|
||||
VM_CALL_BLOCKISEQ_bit, /* has blockiseq */
|
||||
VM_CALL_KWARG_bit, /* has kwarg */
|
||||
VM_CALL_KW_SPLAT_bit, /* m(**opts) */
|
||||
VM_CALL_TAILCALL_bit, /* located at tail position */
|
||||
VM_CALL_SUPER_bit, /* super */
|
||||
VM_CALL_ZSUPER_bit, /* zsuper */
|
||||
VM_CALL_OPT_SEND_bit, /* internal flag */
|
||||
VM_CALL_KW_SPLAT_MUT_bit, /* kw splat hash can be modified (to avoid allocating a new one) */
|
||||
VM_CALL_ARGS_SPLAT_bit, // m(*args)
|
||||
VM_CALL_ARGS_BLOCKARG_bit, // m(&block)
|
||||
VM_CALL_FCALL_bit, // m(args) # receiver is self
|
||||
VM_CALL_VCALL_bit, // m # method call that looks like a local variable
|
||||
VM_CALL_ARGS_SIMPLE_bit, // (ci->flag & (SPLAT|BLOCKARG)) && blockiseq == NULL && ci->kw_arg == NULL
|
||||
VM_CALL_BLOCKISEQ_bit, // has blockiseq
|
||||
VM_CALL_KWARG_bit, // has kwarg
|
||||
VM_CALL_KW_SPLAT_bit, // m(**opts)
|
||||
VM_CALL_TAILCALL_bit, // located at tail position
|
||||
VM_CALL_SUPER_bit, // super
|
||||
VM_CALL_ZSUPER_bit, // zsuper
|
||||
VM_CALL_OPT_SEND_bit, // internal flag
|
||||
VM_CALL_KW_SPLAT_MUT_bit, // kw splat hash can be modified (to avoid allocating a new one)
|
||||
VM_CALL__END
|
||||
};
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче