ruby-changes:10711
From: ko1 <ko1@a...>
Date: Fri, 13 Feb 2009 15:26:18 +0900 (JST)
Subject: [ruby-changes:10711] Ruby:r22275 (trunk): * vm_eval.c (eval_string_with_cref): use rb_vm_get_ruby_level_next_cfp()
ko1 2009-02-13 15:25:59 +0900 (Fri, 13 Feb 2009) New Revision: 22275 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=22275 Log: * vm_eval.c (eval_string_with_cref): use rb_vm_get_ruby_level_next_cfp() instead of vm_get_ruby_level_caller_cfp(). checking a upper frame is not enough. [ruby-dev:37984] * proc.c, vm_core.h: declare rb_vm_get_ruby_level_next_cfp() on vm_core.h. Modified files: trunk/ChangeLog trunk/proc.c trunk/vm_core.h trunk/vm_eval.c Index: ChangeLog =================================================================== --- ChangeLog (revision 22274) +++ ChangeLog (revision 22275) @@ -1,3 +1,12 @@ +Fri Feb 13 15:11:11 2009 Koichi Sasada <ko1@a...> + + * vm_eval.c (eval_string_with_cref): use rb_vm_get_ruby_level_next_cfp() + instead of vm_get_ruby_level_caller_cfp(). checking a upper frame + is not enough. [ruby-dev:37984] + + * proc.c, vm_core.h: declare rb_vm_get_ruby_level_next_cfp() + on vm_core.h. + Fri Feb 13 15:01:40 2009 Koichi Sasada <ko1@a...> * cont.c (rb_fiber_alive_p): fix to return true instead of 1. Index: vm_core.h =================================================================== --- vm_core.h (revision 22274) +++ vm_core.h (revision 22275) @@ -593,6 +593,7 @@ VALUE rb_make_backtrace(void); typedef int rb_backtrace_iter_func(void *, const char *, int, const char *); VALUE rb_backtrace_each(rb_backtrace_iter_func *iter, void *arg); +rb_control_frame_t *rb_vm_get_ruby_level_next_cfp(rb_thread_t *th, rb_control_frame_t *cfp); NOINLINE(void rb_gc_save_machine_context(rb_thread_t *)); Index: vm_eval.c =================================================================== --- vm_eval.c (revision 22274) +++ vm_eval.c (revision 22275) @@ -706,7 +706,7 @@ th->base_block = &env->block; } else { - rb_control_frame_t *cfp = vm_get_ruby_level_caller_cfp(th, th->cfp); + rb_control_frame_t *cfp = rb_vm_get_ruby_level_next_cfp(th, th->cfp); if (cfp != 0) { block = *RUBY_VM_GET_BLOCK_PTR_IN_CFP(cfp); Index: proc.c =================================================================== --- proc.c (revision 22274) +++ proc.c (revision 22275) @@ -274,8 +274,6 @@ return bindval; } -rb_control_frame_t *rb_vm_get_ruby_level_next_cfp(rb_thread_t *th, rb_control_frame_t *cfp); - VALUE rb_binding_new(void) { -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/