[#21338] $SAFE=4 での autoload — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

21 messages 2003/09/04
[#21346] Re: $SAFE=4 での autoload — nobu.nakada@... 2003/09/04

なかだです。

[#21359] Re: $SAFE=4 での autoload — Hidetoshi NAGAI <nagai@...> 2003/09/05

永井@知能.九工大です.

[#21419] Makefile.inのlex.c — Kazuhiro NISHIYAMA <zn@...>

西山和広です。

15 messages 2003/09/28

[ruby-dev:21303] [PATCH] return from proc-called block

From: nobu.nakada@...
Date: 2003-09-02 15:05:28 UTC
List: ruby-dev #21303
なかだです。

http://mput.dip.jp:8080/mput/?date=20030902#p01 のバグですが、
こんなところでしょうか。

* eval.c (rb_yield_0): pass return value when returned from a proc-
  called block.

Index: eval.c
===================================================================
RCS file: /cvs/ruby/src/ruby/eval.c,v
retrieving revision 1.530
diff -u -2 -p -r1.530 eval.c
--- eval.c	2 Sep 2003 00:51:39 -0000	1.530
+++ eval.c	2 Sep 2003 15:01:27 -0000
@@ -4175,4 +4175,5 @@ rb_yield_0(val, self, klass, flags, aval
 	  case TAG_NEXT:
 	    state = 0;
+	  case TAG_RETURN:
 	    result = prot_tag->retval;
 	    break;
@@ -4209,5 +4210,10 @@ rb_yield_0(val, self, klass, flags, aval
     scope_vmode = old_vmode;
     ruby_current_node = cnode;
-    if (state) JUMP_TAG(state);
+    if (state) {
+	if (prot_tag->tag == PROT_PCALL && state == TAG_RETURN) {
+	    localjump_destination(state, prot_tag->scope, prot_tag->retval);
+	}
+	JUMP_TAG(state);
+    }
     return result;
 }


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread

Prev Next