From d61356d9f794a87b566f97263d9fb3455ce625c1 Mon Sep 17 00:00:00 2001 From: ko1 Date: Tue, 1 Jul 2008 17:11:35 +0000 Subject: * proc.c, vm.c: fix to refer next ruby level cfp to make binding. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ proc.c | 4 +++- vm.c | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index ffdfdf7aa..f4901afaf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Wed Jul 2 02:02:34 2008 Koichi Sasada + + * proc.c, vm.c: fix to refer next ruby level cfp to make binding. + Wed Jul 2 01:58:19 2008 NAKAMURA Usaku * insns.def (trace): C99ism. diff --git a/proc.c b/proc.c index f2d69c731..cb98853a1 100644 --- a/proc.c +++ b/proc.c @@ -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; diff --git a/vm.c b/vm.c index 6039daef0..793b9fd30 100644 --- a/vm.c +++ b/vm.c @@ -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)) { -- cgit