* vm_core.h, proc.c, vm_backtrace.c, vm_trace.c:
remove rb_binding_new_with_cfp, and use rb_vm_make_binding instead. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
231f45ad36
commit
a2608f293d
@ -1,3 +1,8 @@
|
|||||||
|
Sat Oct 18 20:40:52 2014 Kazuki Tsujimoto <kazuki@callcc.net>
|
||||||
|
|
||||||
|
* vm_core.h, proc.c, vm_backtrace.c, vm_trace.c:
|
||||||
|
remove rb_binding_new_with_cfp, and use rb_vm_make_binding instead.
|
||||||
|
|
||||||
Sat Oct 18 20:38:48 2014 Kazuki Tsujimoto <kazuki@callcc.net>
|
Sat Oct 18 20:38:48 2014 Kazuki Tsujimoto <kazuki@callcc.net>
|
||||||
|
|
||||||
* vm_core.h, vm.c, proc.c: fix GC mark miss on bindings.
|
* vm_core.h, vm.c, proc.c: fix GC mark miss on bindings.
|
||||||
|
8
proc.c
8
proc.c
@ -301,17 +301,11 @@ binding_clone(VALUE self)
|
|||||||
return bindval;
|
return bindval;
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE
|
|
||||||
rb_binding_new_with_cfp(rb_thread_t *th, const rb_control_frame_t *src_cfp)
|
|
||||||
{
|
|
||||||
return rb_vm_make_binding(th, src_cfp);
|
|
||||||
}
|
|
||||||
|
|
||||||
VALUE
|
VALUE
|
||||||
rb_binding_new(void)
|
rb_binding_new(void)
|
||||||
{
|
{
|
||||||
rb_thread_t *th = GET_THREAD();
|
rb_thread_t *th = GET_THREAD();
|
||||||
return rb_binding_new_with_cfp(th, th->cfp);
|
return rb_vm_make_binding(th, th->cfp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1159,7 +1159,7 @@ collect_caller_bindings(rb_thread_t *th)
|
|||||||
|
|
||||||
if (!NIL_P(cfp_val)) {
|
if (!NIL_P(cfp_val)) {
|
||||||
rb_control_frame_t *cfp = GC_GUARDED_PTR_REF(cfp_val);
|
rb_control_frame_t *cfp = GC_GUARDED_PTR_REF(cfp_val);
|
||||||
rb_ary_store(entry, CALLER_BINDING_BINDING, rb_binding_new_with_cfp(th, cfp));
|
rb_ary_store(entry, CALLER_BINDING_BINDING, rb_vm_make_binding(th, cfp));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -913,7 +913,6 @@ VALUE rb_vm_make_proc(rb_thread_t *th, const rb_block_t *block, VALUE klass);
|
|||||||
VALUE rb_vm_make_binding(rb_thread_t *th, const rb_control_frame_t *src_cfp);
|
VALUE rb_vm_make_binding(rb_thread_t *th, const rb_control_frame_t *src_cfp);
|
||||||
VALUE rb_vm_make_env_object(rb_thread_t *th, rb_control_frame_t *cfp);
|
VALUE rb_vm_make_env_object(rb_thread_t *th, rb_control_frame_t *cfp);
|
||||||
VALUE rb_vm_env_local_variables(VALUE envval);
|
VALUE rb_vm_env_local_variables(VALUE envval);
|
||||||
VALUE rb_binding_new_with_cfp(rb_thread_t *th, const rb_control_frame_t *src_cfp);
|
|
||||||
VALUE *rb_binding_add_dynavars(rb_binding_t *bind, int dyncount, const ID *dynvars);
|
VALUE *rb_binding_add_dynavars(rb_binding_t *bind, int dyncount, const ID *dynvars);
|
||||||
void rb_vm_inc_const_missing_count(void);
|
void rb_vm_inc_const_missing_count(void);
|
||||||
void rb_vm_gvl_destroy(rb_vm_t *vm);
|
void rb_vm_gvl_destroy(rb_vm_t *vm);
|
||||||
|
@ -811,7 +811,7 @@ rb_tracearg_binding(rb_trace_arg_t *trace_arg)
|
|||||||
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, trace_arg->cfp);
|
||||||
|
|
||||||
if (cfp) {
|
if (cfp) {
|
||||||
return rb_binding_new_with_cfp(trace_arg->th, cfp);
|
return rb_vm_make_binding(trace_arg->th, cfp);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return Qnil;
|
return Qnil;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user