yarv-diff:319
From: ko1 atdot.net
Date: 11 Apr 2006 02:30:46 -0000
Subject: [yarv-diff:319] r484 - trunk
Author: ko1
Date: 2006-04-11 11:30:45 +0900 (Tue, 11 Apr 2006)
New Revision: 484
Modified:
trunk/
trunk/ChangeLog
trunk/compile.c
trunk/eval.c
trunk/vm.c
Log:
r747@lermite: ko1 | 2006-04-07 20:31:46 +0900
* compile.c : fix miss about range of catch "next"
* eval.c : add braces
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 81cd9672-7512-7e48-ae48-6936450e977d:/local/yarv/trunk:745
+ 81cd9672-7512-7e48-ae48-6936450e977d:/local/yarv/trunk:747
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2006-04-07 02:18:53 UTC (rev 483)
+++ trunk/ChangeLog 2006-04-11 02:30:45 UTC (rev 484)
@@ -4,6 +4,13 @@
# from Mon, 03 May 2004 01:24:19 +0900
#
+2006-04-07(Fri) 20:25:03 +0900 Koichi Sasada <ko1 atdot.net>
+
+ * compile.c : fix miss about range of catch "next"
+
+ * eval.c : add braces
+
+
2006-04-07(Fri) 11:09:43 +0900 Koichi Sasada <ko1 atdot.net>
* common.mk : fix some make rules
Modified: trunk/compile.c
===================================================================
--- trunk/compile.c 2006-04-07 02:18:53 UTC (rev 483)
+++ trunk/compile.c 2006-04-11 02:30:45 UTC (rev 484)
@@ -223,7 +223,7 @@
/* wide range catch handler must put at last */
ADD_CATCH_ENTRY(CATCH_TYPE_REDO, start, end, 0, start);
- ADD_CATCH_ENTRY(CATCH_TYPE_NEXT, start, start, 0, end);
+ ADD_CATCH_ENTRY(CATCH_TYPE_NEXT, start, end, 0, end);
}
else if (iseq->type == ISEQ_TYPE_TOP) {
set_localtbl(iseq, GET_THREAD()->top_local_tbl);
Modified: trunk/eval.c
===================================================================
--- trunk/eval.c 2006-04-07 02:18:53 UTC (rev 483)
+++ trunk/eval.c 2006-04-11 02:30:45 UTC (rev 484)
@@ -260,11 +260,15 @@
int state;
static int ex;
- if (ruby_nerrs > 0)
+ if (ruby_nerrs > 0) {
exit(EXIT_FAILURE);
+ }
+
state = ruby_exec();
- if (state && !ex)
+
+ if (state && !ex) {
ex = state;
+ }
ruby_stop(ex);
}
Modified: trunk/vm.c
===================================================================
--- trunk/vm.c 2006-04-07 02:18:53 UTC (rev 483)
+++ trunk/vm.c 2006-04-11 02:30:45 UTC (rev 484)
@@ -1597,8 +1597,8 @@
search_restart_point:
for (i = 0; i < cfp->iseq->catch_table_size; i++) {
entry = &cfp->iseq->catch_table[i];
+
if (entry->start < epc && entry->end >= epc) {
-
if (entry->type == CATCH_TYPE_ENSURE) {
catch_iseqval = entry->iseq;
cont_pc = entry->cont;
--
ML: yarv-diff quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml