[#14922] alias $gvar — Koji Arai <JCA02266@...>

新井です。

19 messages 2001/10/14

[#15006] Re: eval.c (rb_stack_check): prohibit recursive raising error — WATANABE Hirofumi <eban@...>

わたなべです。

13 messages 2001/10/26
[#15008] Re: eval.c (rb_stack_check): prohibit recursive raising error — Shugo Maeda <shugo@...> 2001/10/26

前田です。

[ruby-dev:14835] Re: custom marshal

From: nobu.nakada@...
Date: 2001-10-01 13:20:36 UTC
List: ruby-dev #14835
なかだです。

At Mon, 1 Oct 2001 18:44:46 +0900,
Tanaka Akira <akr@m17n.org> wrote:
> % ruby -e 'class C < Hash; end; p Marshal.load(Marshal.dump(C.new))'
> -e:1:in `load': dump format error (user class) (ArgumentError)
>         from -e:1
> 
> これは逆な気がしますね。
> 
> v.class が c の子孫であることを検査してますが、
> c が v.class の子孫であることを検査したかったんじゃないのかなぁ。

 うーん、たしかにそんな気もしますね。


Index: marshal.c
===================================================================
RCS file: /cvs/ruby/src/ruby/marshal.c,v
retrieving revision 1.44
diff -u -2 -p -r1.44 marshal.c
--- marshal.c	2001/08/29 06:28:44	1.44
+++ marshal.c	2001/10/01 13:02:47
@@ -799,5 +799,5 @@ r_object(arg)
 	    v = r_object(arg);
 	    if (rb_special_const_p(v) ||
-		!RTEST(rb_funcall(c, rb_intern("==="), 1, v))) {
+		!RTEST(rb_funcall(c, '<', 1, RBASIC(v)->klass))) {
 		rb_raise(rb_eArgError, "dump format error (user class)");
 	    }


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

In This Thread