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

ruby-changes:14773

From: mame <ko1@a...>
Date: Thu, 11 Feb 2010 01:54:53 +0900 (JST)
Subject: [ruby-changes:14773] Ruby:r26633 (trunk): * vm.c (vm_exec): temporarily revert r26628, which causes SEGV when

mame	2010-02-11 01:46:39 +0900 (Thu, 11 Feb 2010)

  New Revision: 26633

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26633

  Log:
    * vm.c (vm_exec): temporarily revert r26628, which causes SEGV when
      executing rubyspec.

  Modified files:
    trunk/ChangeLog
    trunk/vm.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 26632)
+++ ChangeLog	(revision 26633)
@@ -1,3 +1,8 @@
+Thu Feb 11 01:45:04 2010  Yusuke Endoh  <mame@t...>
+
+	* vm.c (vm_exec): temporarily revert r26628, which causes SEGV when
+	  executing rubyspec.
+
 Wed Feb 10 16:31:03 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* array.c (rb_ary_push_m, rb_ary_unshift_m, rb_ary_aset),
Index: vm.c
===================================================================
--- vm.c	(revision 26632)
+++ vm.c	(revision 26633)
@@ -1121,8 +1121,6 @@
     _tag.retval = Qnil;
     if ((state = EXEC_TAG()) == 0) {
       vm_loop_start:
-	th->state = 0;
-	th->errinfo = Qnil;
 	result = vm_exec_core(th, initial);
 	if ((state = th->state) != 0) {
 	    err = result;
@@ -1191,6 +1189,7 @@
 #else
 		    *th->cfp->sp++ = (GET_THROWOBJ_VAL(err));
 #endif
+		    th->errinfo = Qnil;
 		    goto vm_loop_start;
 		}
 	    }
@@ -1227,6 +1226,7 @@
 			escape_dfp = GET_THROWOBJ_CATCH_POINT(err);
 			if (cfp->dfp == escape_dfp) {
 			    cfp->pc = cfp->iseq->iseq_encoded + entry->cont;
+			    th->errinfo = Qnil;
 			    goto vm_loop_start;
 			}
 		    }
@@ -1258,6 +1258,7 @@
 			    *th->cfp->sp++ = (GET_THROWOBJ_VAL(err));
 #endif
 			}
+			th->errinfo = Qnil;
 			goto vm_loop_start;
 		    }
 		}
@@ -1301,6 +1302,8 @@
 			  cfp->self, (VALUE)cfp->dfp, catch_iseq->iseq_encoded,
 			  cfp->sp + 1 /* push value */, cfp->lfp, catch_iseq->local_size - 1);
 
+	    state = 0;
+	    th->errinfo = Qnil;
 	    goto vm_loop_start;
 	}
 	else {

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

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