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

ruby-changes:14582

From: mame <ko1@a...>
Date: Tue, 26 Jan 2010 20:28:55 +0900 (JST)
Subject: [ruby-changes:14582] Ruby:r26425 (trunk): * vm.c (rb_vm_invoke_proc): this function must not catch TAG_RETURN

mame	2010-01-26 20:28:38 +0900 (Tue, 26 Jan 2010)

  New Revision: 26425

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

  Log:
    * vm.c (rb_vm_invoke_proc): this function must not catch TAG_RETURN
      because vm_exec does.  This caused rubyspec error.  [ruby-dev:40158]

  Modified files:
    trunk/ChangeLog
    trunk/vm.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 26424)
+++ ChangeLog	(revision 26425)
@@ -1,3 +1,8 @@
+Tue Jan 26 20:23:22 2010  Yusuke Endoh  <mame@t...>
+
+	* vm.c (rb_vm_invoke_proc): this function must not catch TAG_RETURN
+	  because vm_exec does.  This caused rubyspec error.  [ruby-dev:40158]
+
 Tue Jan 26 20:21:28 2010  Masatoshi SEKI  <m_seki@m...>
 
 	* lib/drb/eq.rb: fix circular requrie in drb.
Index: vm.c
===================================================================
--- vm.c	(revision 26424)
+++ vm.c	(revision 26425)
@@ -609,21 +609,6 @@
     }
 
     if (state) {
-	if (state == TAG_RETURN && proc->is_lambda) {
-	    VALUE err = th->errinfo;
-	    VALUE *escape_dfp = GET_THROWOBJ_CATCH_POINT(err);
-
-	    if (escape_dfp == cfp->dfp) {
-		printf("ok\n");
-		state = 0;
-		th->errinfo = Qnil;
-		th->cfp = cfp;
-		val = GET_THROWOBJ_VAL(err);
-	    }
-	}
-    }
-
-    if (state) {
 	JUMP_TAG(state);
     }
     return val;

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

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