1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* 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
This commit is contained in:
ko1 2008-07-01 17:11:35 +00:00
parent 6d625e4b6e
commit ab109c36f1
3 changed files with 8 additions and 2 deletions

View file

@ -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> Wed Jul 2 01:58:19 2008 NAKAMURA Usaku <usa@ruby-lang.org>
* insns.def (trace): C99ism. * insns.def (trace): C99ism.

4
proc.c
View file

@ -271,11 +271,13 @@ binding_clone(VALUE self)
return bindval; return bindval;
} }
rb_control_frame_t *vm_get_ruby_level_next_cfp(rb_thread_t *th, rb_control_frame_t *cfp);
VALUE VALUE
rb_binding_new(void) rb_binding_new(void)
{ {
rb_thread_t *th = GET_THREAD(); 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); VALUE bindval = binding_alloc(rb_cBinding);
rb_binding_t *bind; rb_binding_t *bind;

2
vm.c
View file

@ -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) 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)) { while (!RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(th, cfp)) {