aboutsummaryrefslogtreecommitdiffstats
path: root/vm_eval.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-10-27 00:46:11 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-10-27 00:46:11 +0000
commitcd17636e06a23fc431016ea3d3a9143d08beab78 (patch)
treea1805f08629c85ee7d27c05b525f871ae8520d0f /vm_eval.c
parent30d69ec785a3b31875fb5e9cce91a82b042eefd3 (diff)
downloadruby-cd17636e06a23fc431016ea3d3a9143d08beab78.tar.gz
vm_get_ruby_level_caller_cfp() accepts `ec` instead of `th`.
* vm.c (vm_get_ruby_level_caller_cfp): accepts `ec` instead of `th`. * vm.c (vm_collect_local_variables_in_heap): don't need `th` anymore. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_eval.c')
-rw-r--r--vm_eval.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/vm_eval.c b/vm_eval.c
index 8e671320ed..7647e115ef 100644
--- a/vm_eval.c
+++ b/vm_eval.c
@@ -22,7 +22,7 @@ static inline VALUE vm_yield_with_block(rb_thread_t *th, int argc, const VALUE *
static inline VALUE vm_yield_force_blockarg(rb_thread_t *th, VALUE args);
static VALUE vm_exec(rb_thread_t *th);
static void vm_set_eval_stack(rb_thread_t * th, const rb_iseq_t *iseq, const rb_cref_t *cref, const struct rb_block *base_block);
-static int vm_collect_local_variables_in_heap(rb_thread_t *th, const VALUE *dfp, const struct local_var_list *vars);
+static int vm_collect_local_variables_in_heap(const VALUE *dfp, const struct local_var_list *vars);
static VALUE rb_eUncaughtThrow;
static ID id_result, id_tag, id_value;
@@ -2079,9 +2079,8 @@ static VALUE
rb_f_local_variables(void)
{
struct local_var_list vars;
- rb_thread_t *th = GET_THREAD();
- rb_control_frame_t *cfp =
- vm_get_ruby_level_caller_cfp(th, RUBY_VM_PREVIOUS_CONTROL_FRAME(th->ec->cfp));
+ rb_execution_context_t *ec = GET_EC();
+ rb_control_frame_t *cfp = vm_get_ruby_level_caller_cfp(ec, RUBY_VM_PREVIOUS_CONTROL_FRAME(ec->cfp));
unsigned int i;
local_var_list_init(&vars);
@@ -2095,7 +2094,7 @@ rb_f_local_variables(void)
/* block */
const VALUE *ep = VM_CF_PREV_EP(cfp);
- if (vm_collect_local_variables_in_heap(th, ep, &vars)) {
+ if (vm_collect_local_variables_in_heap(ep, &vars)) {
break;
}
else {
@@ -2136,9 +2135,9 @@ rb_f_local_variables(void)
VALUE
rb_f_block_given_p(void)
{
- rb_thread_t *th = GET_THREAD();
- rb_control_frame_t *cfp = th->ec->cfp;
- cfp = vm_get_ruby_level_caller_cfp(th, RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp));
+ rb_execution_context_t *ec = GET_EC();
+ rb_control_frame_t *cfp = ec->cfp;
+ cfp = vm_get_ruby_level_caller_cfp(ec, RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp));
if (cfp != NULL && VM_CF_BLOCK_HANDLER(cfp) != VM_BLOCK_HANDLER_NONE) {
return Qtrue;
@@ -2151,9 +2150,9 @@ rb_f_block_given_p(void)
VALUE
rb_current_realfilepath(void)
{
- rb_thread_t *th = GET_THREAD();
- rb_control_frame_t *cfp = th->ec->cfp;
- cfp = vm_get_ruby_level_caller_cfp(th, RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp));
+ const rb_execution_context_t *ec = GET_EC();
+ rb_control_frame_t *cfp = ec->cfp;
+ cfp = vm_get_ruby_level_caller_cfp(ec, RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp));
if (cfp != 0) return rb_iseq_realpath(cfp->iseq);
return Qnil;
}