[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]