aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--proc.c4
-rw-r--r--vm.c10
-rw-r--r--vm_backtrace.c2
-rw-r--r--vm_core.h2
-rw-r--r--vm_trace.c2
5 files changed, 10 insertions, 10 deletions
diff --git a/proc.c b/proc.c
index 48cd97bd38..1fdc46dd73 100644
--- a/proc.c
+++ b/proc.c
@@ -332,8 +332,8 @@ binding_clone(VALUE self)
VALUE
rb_binding_new(void)
{
- rb_thread_t *th = GET_THREAD();
- return rb_vm_make_binding(th, th->ec->cfp);
+ rb_execution_context_t *ec = GET_EC();
+ return rb_vm_make_binding(ec, ec->cfp);
}
/*
diff --git a/vm.c b/vm.c
index 09d27f347b..3e2420ee0b 100644
--- a/vm.c
+++ b/vm.c
@@ -893,10 +893,10 @@ rb_vm_make_proc_lambda(const rb_execution_context_t *ec, const struct rb_capture
/* Binding */
VALUE
-rb_vm_make_binding(rb_thread_t *th, const rb_control_frame_t *src_cfp)
+rb_vm_make_binding(const rb_execution_context_t *ec, const rb_control_frame_t *src_cfp)
{
- rb_control_frame_t *cfp = rb_vm_get_binding_creatable_next_cfp(th->ec, src_cfp);
- rb_control_frame_t *ruby_level_cfp = rb_vm_get_ruby_level_next_cfp(th->ec, src_cfp);
+ rb_control_frame_t *cfp = rb_vm_get_binding_creatable_next_cfp(ec, src_cfp);
+ rb_control_frame_t *ruby_level_cfp = rb_vm_get_ruby_level_next_cfp(ec, src_cfp);
VALUE bindval, envval;
rb_binding_t *bind;
@@ -905,11 +905,11 @@ rb_vm_make_binding(rb_thread_t *th, const rb_control_frame_t *src_cfp)
}
while (1) {
- envval = vm_make_env_object(th->ec, cfp);
+ envval = vm_make_env_object(ec, cfp);
if (cfp == ruby_level_cfp) {
break;
}
- cfp = rb_vm_get_binding_creatable_next_cfp(th->ec, RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp));
+ cfp = rb_vm_get_binding_creatable_next_cfp(ec, RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp));
}
bindval = rb_binding_alloc(rb_cBinding);
diff --git a/vm_backtrace.c b/vm_backtrace.c
index 99af3e9dee..bc90267c81 100644
--- a/vm_backtrace.c
+++ b/vm_backtrace.c
@@ -1156,7 +1156,7 @@ collect_caller_bindings(rb_thread_t *th)
if (!NIL_P(cfp_val)) {
rb_control_frame_t *cfp = GC_GUARDED_PTR_REF(cfp_val);
- rb_ary_store(entry, CALLER_BINDING_BINDING, rb_vm_make_binding(th, cfp));
+ rb_ary_store(entry, CALLER_BINDING_BINDING, rb_vm_make_binding(th->ec, cfp));
}
}
diff --git a/vm_core.h b/vm_core.h
index 9b785ed206..0decbf24cc 100644
--- a/vm_core.h
+++ b/vm_core.h
@@ -1502,7 +1502,7 @@ int rb_ec_frame_method_id_and_class(const rb_execution_context_t *ec, ID *idp, I
VALUE rb_vm_invoke_proc(rb_execution_context_t *ec, rb_proc_t *proc, int argc, const VALUE *argv, VALUE block_handler);
VALUE rb_vm_make_proc_lambda(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass, int8_t is_lambda);
VALUE rb_vm_make_proc(const rb_execution_context_t *ec, const struct rb_captured_block *captured, VALUE klass);
-VALUE rb_vm_make_binding(rb_thread_t *th, const rb_control_frame_t *src_cfp);
+VALUE rb_vm_make_binding(const rb_execution_context_t *th, const rb_control_frame_t *src_cfp);
VALUE rb_vm_env_local_variables(const rb_env_t *env);
const rb_env_t *rb_vm_env_prev_env(const rb_env_t *env);
const VALUE *rb_binding_add_dynavars(VALUE bindval, rb_binding_t *bind, int dyncount, const ID *dynvars);
diff --git a/vm_trace.c b/vm_trace.c
index 41051a5e64..fd1b1d5b23 100644
--- a/vm_trace.c
+++ b/vm_trace.c
@@ -810,7 +810,7 @@ rb_tracearg_binding(rb_trace_arg_t *trace_arg)
cfp = rb_vm_get_binding_creatable_next_cfp(trace_arg->th->ec, trace_arg->cfp);
if (cfp) {
- return rb_vm_make_binding(trace_arg->th, cfp);
+ return rb_vm_make_binding(trace_arg->th->ec, cfp);
}
else {
return Qnil;