th
-> ec
for some functions.
* vm.c (rb_vm_get_binding_creatable_next_cfp): accepts `ec` instead of `th`. * vm.c (rb_vm_stack_to_heap): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
9ca5088428
commit
5a7bd5349c
2
cont.c
2
cont.c
@ -606,7 +606,7 @@ cont_capture(volatile int *volatile stat)
|
|||||||
const rb_execution_context_t *ec = th->ec;
|
const rb_execution_context_t *ec = th->ec;
|
||||||
|
|
||||||
THREAD_MUST_BE_RUNNING(th);
|
THREAD_MUST_BE_RUNNING(th);
|
||||||
rb_vm_stack_to_heap(th);
|
rb_vm_stack_to_heap(th->ec);
|
||||||
cont = cont_new(rb_cContinuation);
|
cont = cont_new(rb_cContinuation);
|
||||||
contval = cont->self;
|
contval = cont->self;
|
||||||
|
|
||||||
|
2
safe.c
2
safe.c
@ -82,7 +82,7 @@ safe_setter(VALUE val)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* block parameters */
|
/* block parameters */
|
||||||
rb_vm_stack_to_heap(th);
|
rb_vm_stack_to_heap(th->ec);
|
||||||
|
|
||||||
th->ec->safe_level = level;
|
th->ec->safe_level = level;
|
||||||
}
|
}
|
||||||
|
16
vm.c
16
vm.c
@ -483,9 +483,9 @@ vm_set_main_stack(rb_execution_context_t *ec, const rb_iseq_t *iseq)
|
|||||||
}
|
}
|
||||||
|
|
||||||
rb_control_frame_t *
|
rb_control_frame_t *
|
||||||
rb_vm_get_binding_creatable_next_cfp(const rb_thread_t *th, const rb_control_frame_t *cfp)
|
rb_vm_get_binding_creatable_next_cfp(const rb_execution_context_t *ec, const rb_control_frame_t *cfp)
|
||||||
{
|
{
|
||||||
while (!RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(th->ec, cfp)) {
|
while (!RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(ec, cfp)) {
|
||||||
if (cfp->iseq) {
|
if (cfp->iseq) {
|
||||||
return (rb_control_frame_t *)cfp;
|
return (rb_control_frame_t *)cfp;
|
||||||
}
|
}
|
||||||
@ -729,11 +729,11 @@ vm_make_env_object(const rb_execution_context_t *ec, rb_control_frame_t *cfp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
rb_vm_stack_to_heap(rb_thread_t *th)
|
rb_vm_stack_to_heap(rb_execution_context_t *ec)
|
||||||
{
|
{
|
||||||
rb_control_frame_t *cfp = th->ec->cfp;
|
rb_control_frame_t *cfp = ec->cfp;
|
||||||
while ((cfp = rb_vm_get_binding_creatable_next_cfp(th, cfp)) != 0) {
|
while ((cfp = rb_vm_get_binding_creatable_next_cfp(ec, cfp)) != 0) {
|
||||||
vm_make_env_object(th->ec, cfp);
|
vm_make_env_object(ec, cfp);
|
||||||
cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);
|
cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -895,7 +895,7 @@ rb_vm_make_proc_lambda(const rb_execution_context_t *ec, const struct rb_capture
|
|||||||
VALUE
|
VALUE
|
||||||
rb_vm_make_binding(rb_thread_t *th, const rb_control_frame_t *src_cfp)
|
rb_vm_make_binding(rb_thread_t *th, const rb_control_frame_t *src_cfp)
|
||||||
{
|
{
|
||||||
rb_control_frame_t *cfp = rb_vm_get_binding_creatable_next_cfp(th, 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 *ruby_level_cfp = rb_vm_get_ruby_level_next_cfp(th->ec, src_cfp);
|
||||||
VALUE bindval, envval;
|
VALUE bindval, envval;
|
||||||
rb_binding_t *bind;
|
rb_binding_t *bind;
|
||||||
@ -909,7 +909,7 @@ rb_vm_make_binding(rb_thread_t *th, const rb_control_frame_t *src_cfp)
|
|||||||
if (cfp == ruby_level_cfp) {
|
if (cfp == ruby_level_cfp) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cfp = rb_vm_get_binding_creatable_next_cfp(th, RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp));
|
cfp = rb_vm_get_binding_creatable_next_cfp(th->ec, RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp));
|
||||||
}
|
}
|
||||||
|
|
||||||
bindval = rb_binding_alloc(rb_cBinding);
|
bindval = rb_binding_alloc(rb_cBinding);
|
||||||
|
@ -1541,10 +1541,10 @@ rb_vm_living_threads_remove(rb_vm_t *vm, rb_thread_t *th)
|
|||||||
|
|
||||||
typedef int rb_backtrace_iter_func(void *, VALUE, int, VALUE);
|
typedef int rb_backtrace_iter_func(void *, VALUE, int, VALUE);
|
||||||
rb_control_frame_t *rb_vm_get_ruby_level_next_cfp(const rb_execution_context_t *ec, const rb_control_frame_t *cfp);
|
rb_control_frame_t *rb_vm_get_ruby_level_next_cfp(const rb_execution_context_t *ec, const rb_control_frame_t *cfp);
|
||||||
rb_control_frame_t *rb_vm_get_binding_creatable_next_cfp(const rb_thread_t *th, const rb_control_frame_t *cfp);
|
rb_control_frame_t *rb_vm_get_binding_creatable_next_cfp(const rb_execution_context_t *th, const rb_control_frame_t *cfp);
|
||||||
int rb_vm_get_sourceline(const rb_control_frame_t *);
|
int rb_vm_get_sourceline(const rb_control_frame_t *);
|
||||||
VALUE rb_name_err_mesg_new(VALUE mesg, VALUE recv, VALUE method);
|
VALUE rb_name_err_mesg_new(VALUE mesg, VALUE recv, VALUE method);
|
||||||
void rb_vm_stack_to_heap(rb_thread_t *th);
|
void rb_vm_stack_to_heap(rb_execution_context_t *ec);
|
||||||
void ruby_thread_init_stack(rb_thread_t *th);
|
void ruby_thread_init_stack(rb_thread_t *th);
|
||||||
int rb_vm_control_frame_id_and_class(const rb_control_frame_t *cfp, ID *idp, ID *called_idp, VALUE *klassp);
|
int rb_vm_control_frame_id_and_class(const rb_control_frame_t *cfp, ID *idp, ID *called_idp, VALUE *klassp);
|
||||||
void rb_vm_rewind_cfp(rb_execution_context_t *ec, rb_control_frame_t *cfp);
|
void rb_vm_rewind_cfp(rb_execution_context_t *ec, rb_control_frame_t *cfp);
|
||||||
|
@ -807,7 +807,7 @@ VALUE
|
|||||||
rb_tracearg_binding(rb_trace_arg_t *trace_arg)
|
rb_tracearg_binding(rb_trace_arg_t *trace_arg)
|
||||||
{
|
{
|
||||||
rb_control_frame_t *cfp;
|
rb_control_frame_t *cfp;
|
||||||
cfp = rb_vm_get_binding_creatable_next_cfp(trace_arg->th, trace_arg->cfp);
|
cfp = rb_vm_get_binding_creatable_next_cfp(trace_arg->th->ec, trace_arg->cfp);
|
||||||
|
|
||||||
if (cfp) {
|
if (cfp) {
|
||||||
return rb_vm_make_binding(trace_arg->th, cfp);
|
return rb_vm_make_binding(trace_arg->th, cfp);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user