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

ruby-changes:4059

From: ko1@a...
Date: Tue, 19 Feb 2008 20:50:07 +0900 (JST)
Subject: [ruby-changes:4059] nobu - Ruby:r15549 (trunk): * eval.c (rb_raise_jump): moved adjustment for control frame.

nobu	2008-02-19 20:49:51 +0900 (Tue, 19 Feb 2008)

  New Revision: 15549

  Modified files:
    trunk/ChangeLog
    trunk/eval.c

  Log:
    * eval.c (rb_raise_jump): moved adjustment for control frame.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15549&r2=15548&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/eval.c?r1=15549&r2=15548&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 15548)
+++ ChangeLog	(revision 15549)
@@ -1,3 +1,7 @@
+Tue Feb 19 20:49:49 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* eval.c (rb_raise_jump): moved adjustment for control frame.
+
 Tue Feb 19 18:34:32 2008  Tanaka Akira  <akr@f...>
 
 	* gc.c (STACK_LENGTH) [SPARC] : 0x80 offset removed.  [ruby-dev:33857]
Index: eval.c
===================================================================
--- eval.c	(revision 15548)
+++ eval.c	(revision 15549)
@@ -775,9 +775,7 @@
 	    argv = &err;
 	}
     }
-    err = rb_make_exception(argc, argv);
-    GET_THREAD()->cfp++;
-    rb_raise_jump(err);
+    rb_raise_jump(rb_make_exception(argc, argv));
     return Qnil;		/* not reached */
 }
 
@@ -830,6 +828,8 @@
 void
 rb_raise_jump(VALUE mesg)
 {
+    rb_thread_t *th = GET_THREAD();
+    th->cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(th->cfp);
     /* TODO: fix me */
     rb_longjmp(TAG_RAISE, mesg);
 }

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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