diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-07-01 17:11:35 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-07-01 17:11:35 +0000 |
commit | ab109c36f19aeaef088e975fa1de3ca6e6cce6f0 (patch) | |
tree | 1cdff9ad41faceb4f16880fcd186a70afb032fc1 | |
parent | 6d625e4b6e1281c59c69165b58eb70430fee9b90 (diff) |
* proc.c, vm.c: fix to refer next ruby level cfp to make binding.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-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)) { |