[#24112] ruby/tk crashes on bcc32 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。原因を追求してたのですが、力尽きました。

19 messages 2004/08/18
[#24127] Re: ruby/tk crashes on bcc32 — Hidetoshi NAGAI <nagai@...> 2004/08/19

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

[#24131] Re: ruby/tk crashes on bcc32 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/08/19

山本です。

[#24135] Re: ruby/tk crashes on bcc32 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/08/19

山本です。試行錯誤の結果、これで落ちなくなりました。

[ruby-dev:24105] Re: core dump with binding, eval, instance_eval and class variable

From: nobu@...
Date: 2004-08-18 02:04:05 UTC
List: ruby-dev #24105
なかだです。

At Tue, 17 Aug 2004 23:50:39 +0900,
Tanaka Akira wrote in [ruby-dev:24103]:
> 
> 次のように、binding, eval, instance_eval, class 変数を使うと、core を
> 吐きます。
> 
> % ruby -v -e '
> def nil.b
>   binding
> end
> bb = eval("nil.instance_eval \"binding\"", nil.b)
> eval("@@a", bb)
> '
> ruby 1.9.0 (2004-08-14) [i686-linux]
> zsh: segmentation fault (core dumped)  ruby -v -e 

nilだけじゃなくてSPECIAL CONST全般ですね。単純に考えるとこれで
いいのではないかと思うのですが。


Index: eval.c
===================================================================
RCS file: /cvs/ruby/src/ruby/eval.c,v
retrieving revision 1.686
diff -u -2 -p -r1.686 eval.c
--- eval.c	2 Aug 2004 08:52:53 -0000	1.686
+++ eval.c	18 Aug 2004 01:41:45 -0000
@@ -6381,12 +6381,5 @@ rb_obj_instance_eval(argc, argv, self)
     VALUE self;
 {
-    VALUE klass;
-
-    if (rb_special_const_p(self)) {
-	klass = Qnil;
-    }
-    else {
-	klass = rb_singleton_class(self);
-    }
+    VALUE klass = rb_singleton_class(self);
 
     return specific_eval(argc, argv, klass, self);


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

In This Thread