diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-08 16:06:33 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-08 16:06:33 +0000 |
commit | 8a83cd100bb932f47ecc7e214e9d89cb8ec3beae (patch) | |
tree | 339ee659c6ec32ad00b1dc7cc74580eca1a42245 /compile.c | |
parent | b4960648bf524605f87e5a5562c3a4b68d2a08bd (diff) | |
download | ruby-8a83cd100bb932f47ecc7e214e9d89cb8ec3beae.tar.gz |
use `getblockparamproxy` to pass blocks.
* compile.c (setup_args): use `getblockparamproxy` (`rb_block_param_proxy`)
to represent a block parameter passing.
* vm_args.c (vm_caller_setup_arg_block): check `rb_block_param_proxy`
instead of using `VM_CALL_ARGS_BLOCKARG_BLOCKPARAM` call flag.
* vm_core.h (VM_CALL_ARGS_BLOCKARG_BLOCKPARAM): removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'compile.c')
-rw-r--r-- | compile.c | 3 |
1 files changed, 1 insertions, 2 deletions
@@ -4514,8 +4514,7 @@ setup_args(rb_iseq_t *iseq, LINK_ANCHOR *const args, const NODE *argn, if (elem->type == ISEQ_ELEMENT_INSN) { INSN *iobj = (INSN *)elem; if (iobj->insn_id == BIN(getblockparam)) { - iobj->insn_id = BIN(getlocal); - *flag |= VM_CALL_ARGS_BLOCKARG_BLOCKPARAM; + iobj->insn_id = BIN(getblockparamproxy); } } } |