[#23717] error at TestDRbMServer (test/drb) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。どうしても原因がわからないので、報告だけ・・・

18 messages 2004/06/19
[#23718] Re: error at TestDRbMServer (test/drb) — nobu.nakada@... 2004/06/19

なかだです。

[#23719] Re: error at TestDRbMServer (test/drb) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/06/19

山本です。

[#23720] Re: error at TestDRbMServer (test/drb) — nobu.nakada@... 2004/06/19

なかだです。

[#23724] Re: error at TestDRbMServer (test/drb) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/06/19

山本です。

[#23762] Ruby 1.8.2 to be released. — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

40 messages 2004/06/23

[#23784] URI() — Tanaka Akira <akr@...17n.org>

前から思っていたのですが、URI.parse("http://...") を URI("http://...")

19 messages 2004/06/25

[ruby-dev:23706] Re: define_method and $SAFE

From: nobu.nakada@...
Date: 2004-06-17 04:42:04 UTC
List: ruby-dev #23706
なかだです。

At Thu, 17 Jun 2004 13:16:01 +0900,
Yukihiro Matsumoto wrote in [ruby-dev:23705]:
> |http://nokada.jin.gr.jp/t/20040611.html#p03 で書いた話ですが、
> |define_methodでは呼び出されたときの$SAFEを使うようにするパッチ
> |です。いまいちすっきりしませんが。
> 
> 基本的にはこれでいいんじゃないでしょうか。私自身はPROC_TMASK 
> のところに「$SAFEを保存しないフラグ」を用意する方法を考えて
> いましたが。

こういう感じ? 最初元のProcにも影響しちゃうんじゃないかと思って
[ruby-dev:23697]のようにしたんですが、cloneしてましたね。こっち
のがシンプルでよさそう。


Index: eval.c
===================================================================
RCS file: /var/cvs/src/ruby/eval.c,v
retrieving revision 1.668
diff -U2 -p -d -r1.668 eval.c
--- eval.c	16 Jun 2004 14:21:33 -0000	1.668
+++ eval.c	17 Jun 2004 04:38:19 -0000
@@ -7877,4 +7877,5 @@ rb_f_binding(self)
 #define PROC_TSHIFT (FL_USHIFT+1)
 #define PROC_TMASK  (FL_USER1|FL_USER2|FL_USER3)
+#define PROC_NOSAFE FL_USER4
 
 static void
@@ -7896,4 +7897,5 @@ proc_set_safe_level(data)
     VALUE data;
 {
+    if (RBASIC(data)->flags & PROC_NOSAFE) return;
     ruby_safe_level = proc_get_safe_level(data);
 }
@@ -9142,4 +9144,5 @@ rb_mod_define_method(argc, argv, mod)
 
 	body = proc_clone(body);
+	RBASIC(body)->flags |= PROC_NOSAFE;
 	Data_Get_Struct(body, struct BLOCK, block);
 	block->frame.last_func = id;


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

In This Thread