[前][次][番号順一覧][スレッド一覧][生データ]

yarv-diff:247

From: ko1 atdot.net
Date: 13 Feb 2006 20:54:31 -0000
Subject: [yarv-diff:247] r410 - trunk

Author: aamine
Date: 2006-02-14 05:54:30 +0900 (Tue, 14 Feb 2006)
New Revision: 410

Modified:
   trunk/ChangeLog
   trunk/eval.c
Log:
* eval.c (ruby_cleanup): th->errinfo contains a NODE while break'ing, check it before refering klass.


Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-02-13 20:51:19 UTC (rev 409)
+++ trunk/ChangeLog	2006-02-13 20:54:30 UTC (rev 410)
@@ -4,6 +4,12 @@
 #  from Mon, 03 May 2004 01:24:19 +0900
 #
 
+2006-02-14(Tue) 05:53:56 +0900  Minero Aoki  <aamine loveruby.net>
+
+	* eval.c (ruby_cleanup): th->errinfo contains a NODE while
+	  break'ing, check it before refering klass.
+
+
 2006-02-14(Tue) 05:45:07 +0900  Koichi Sasada  <ko1 atdot.net>
 
 	* insns.def : fix stack calc of send

Modified: trunk/eval.c
===================================================================
--- trunk/eval.c	2006-02-13 20:51:19 UTC (rev 409)
+++ trunk/eval.c	2006-02-13 20:54:30 UTC (rev 410)
@@ -214,7 +214,9 @@
     volatile VALUE err = GET_THREAD()->errinfo;
     yarv_vm_t *vm = GET_VM();
 
-    if (RTEST(err) && rb_obj_is_kind_of(err, rb_eSystemExit)) {
+    /* th->errinfo contains a NODE while break'ing */
+    if (RTEST(err) && (TYPE(err) != T_NODE) &&
+            rb_obj_is_kind_of(err, rb_eSystemExit)) {
 	vm->exit_code = NUM2INT(rb_iv_get(err, "status"));
     }
     else {


-- 
ML: yarv-diff quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]