[#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:14834] Re: custom marshal

From: Tanaka Akira <akr@...17n.org>
Date: 2001-10-01 09:44:46 UTC
List: ruby-dev #14834
In article <200109290948.f8T9mbh12942@sharui.nakada.kanuma.tochigi.jp>,
  nobu.nakada@nifty.ne.jp writes:

>  1.7だと、loadしたオブジェクトのクラスをチェックしてるところで
> 引っかかってエラーになります。
> 
> marshal.c:800
> 	    if (rb_special_const_p(v) ||
> 		!RTEST(rb_funcall(c, rb_intern("==="), 1, v))) {
> 		rb_raise(rb_eArgError, "dump format error (user class)");
> 	    }

へー、とおもって試してみると...

% 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 の子孫であることを検査したかったんじゃないのかなぁ。
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)

In This Thread