From a8868b3fe56384d9f57ff5803bd843b26afa1584 Mon Sep 17 00:00:00 2001 From: ko1 Date: Thu, 26 Oct 2017 23:33:59 +0000 Subject: rb_vm_bh_to_procval() accepts `ec` instead of `th`. * vm_insnhelper.c (rb_vm_bh_to_procval): accepts `ec` instead of `th`. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- insns.def | 2 +- proc.c | 4 +--- vm_args.c | 2 +- vm_insnhelper.c | 4 ++-- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/insns.def b/insns.def index c4dbebce14..6883e1df79 100644 --- a/insns.def +++ b/insns.def @@ -95,7 +95,7 @@ getblockparam VM_ASSERT(VM_ENV_LOCAL_P(ep)); if (!VM_ENV_FLAGS(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM)) { - val = rb_vm_bh_to_procval(th, VM_ENV_BLOCK_HANDLER(ep)); + val = rb_vm_bh_to_procval(th->ec, VM_ENV_BLOCK_HANDLER(ep)); vm_env_write(ep, -(int)idx, val); VM_ENV_FLAGS_SET(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM); } diff --git a/proc.c b/proc.c index 60662979b3..83691a49ec 100644 --- a/proc.c +++ b/proc.c @@ -384,8 +384,6 @@ bind_eval(int argc, VALUE *argv, VALUE bindval) return rb_f_eval(argc+1, args, Qnil /* self will be searched in eval */); } -VALUE rb_vm_bh_to_procval(rb_thread_t *th, VALUE block_handler); - static const VALUE * get_local_variable_ptr(const rb_env_t **envp, ID lid) { @@ -404,7 +402,7 @@ get_local_variable_ptr(const rb_env_t **envp, ID lid) (unsigned int)iseq->body->param.block_start == i) { const VALUE *ep = env->ep; if (!VM_ENV_FLAGS(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM)) { - RB_OBJ_WRITE(env, &env->env[i], rb_vm_bh_to_procval(GET_THREAD(), VM_ENV_BLOCK_HANDLER(ep))); + RB_OBJ_WRITE(env, &env->env[i], rb_vm_bh_to_procval(GET_EC(), VM_ENV_BLOCK_HANDLER(ep))); VM_ENV_FLAGS_SET(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM); } } diff --git a/vm_args.c b/vm_args.c index 3774cefafc..e8bf5323d3 100644 --- a/vm_args.c +++ b/vm_args.c @@ -477,7 +477,7 @@ static inline void args_setup_block_parameter(rb_thread_t *th, struct rb_calling_info *calling, VALUE *locals) { VALUE block_handler = calling->block_handler; - *locals = rb_vm_bh_to_procval(th, block_handler); + *locals = rb_vm_bh_to_procval(th->ec, block_handler); } struct fill_values_arg { diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 5fc8aa52b4..69a3bdbcb5 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -345,7 +345,7 @@ rb_vm_env_write(const VALUE *ep, int index, VALUE v) } VALUE -rb_vm_bh_to_procval(rb_thread_t *th, VALUE block_handler) +rb_vm_bh_to_procval(rb_execution_context_t *ec, VALUE block_handler) { if (block_handler == VM_BLOCK_HANDLER_NONE) { return Qnil; @@ -354,7 +354,7 @@ rb_vm_bh_to_procval(rb_thread_t *th, VALUE block_handler) switch (vm_block_handler_type(block_handler)) { case block_handler_type_iseq: case block_handler_type_ifunc: - return rb_vm_make_proc(th->ec, VM_BH_TO_CAPT_BLOCK(block_handler), rb_cProc); + return rb_vm_make_proc(ec, VM_BH_TO_CAPT_BLOCK(block_handler), rb_cProc); case block_handler_type_symbol: return rb_sym_to_proc(VM_BH_TO_SYMBOL(block_handler)); case block_handler_type_proc: -- cgit v1.2.3