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