diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | proc.c | 4 | ||||
-rw-r--r-- | vm.c | 2 |
3 files changed, 8 insertions, 2 deletions
@@ -1,3 +1,7 @@ +Wed Jul 2 02:02:34 2008 Koichi Sasada <ko1@atdot.net> + + * proc.c, vm.c: fix to refer next ruby level cfp to make binding. + Wed Jul 2 01:58:19 2008 NAKAMURA Usaku <usa@ruby-lang.org> * insns.def (trace): C99ism. @@ -271,11 +271,13 @@ binding_clone(VALUE self) return bindval; } +rb_control_frame_t *vm_get_ruby_level_next_cfp(rb_thread_t *th, rb_control_frame_t *cfp); + VALUE rb_binding_new(void) { rb_thread_t *th = GET_THREAD(); - rb_control_frame_t *cfp = vm_get_ruby_level_caller_cfp(th, th->cfp); + rb_control_frame_t *cfp = vm_get_ruby_level_next_cfp(th, th->cfp); VALUE bindval = binding_alloc(rb_cBinding); rb_binding_t *bind; @@ -96,7 +96,7 @@ vm_set_eval_stack(rb_thread_t * th, VALUE iseqval, const NODE *cref) } } -static rb_control_frame_t * +rb_control_frame_t * vm_get_ruby_level_next_cfp(rb_thread_t *th, rb_control_frame_t *cfp) { while (!RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(th, cfp)) { |