[#38470] ruby-dev summary 21403-21530 (draft) — Minero Aoki <aamine@...>

青木です。

25 messages 2003/10/07
[#38475] Re: ruby-dev summary 21403-21530 (draft) — maili31s@... (SugHimsi==SUGIHARA Hiroshi) 2003/10/07

すぎむし。

[#38480] Re: ruby-dev summary 21403-21530 (draft) — Minero Aoki <aamine@...> 2003/10/08

青木です。

[#38481] marshal_dump (was Re: ) — m_seki@... 2003/10/08

[#38484] Re: marshal_dump (was Re: ) — matz@... (Yukihiro Matsumoto) 2003/10/09

まつもと ゆきひろです

[#38486] Re: marshal_dump (was Re: ) — Masatoshi Seki <m_seki@...> 2003/10/09

咳といいます

[#38489] exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to>

<http://www.unixuser.org/~ysjj/diary/?200310a&to=200310082#200310082>

29 messages 2003/10/09
[#38490] Re: exit status on exit! — Koji Arai <JCA02266@...> 2003/10/09

新井です。

[#38503] Re: exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to> 2003/10/10

In Message-Id: <20031010.082218.74733862.JCA02266@nifty.ne.jp>

[#38505] Re: exit status on exit! — Koji Arai <JCA02266@...> 2003/10/10

新井です。

[#38507] Re: exit status on exit! — matz@... (Yukihiro Matsumoto) 2003/10/11

まつもと ゆきひろです

[#38514] Re: exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to> 2003/10/11

In Message-Id: <1065883639.405037.23137.nullmailer@picachu.netlab.jp>

[#38515] Re: exit status on exit! — WATANABE Hirofumi <eban@...> 2003/10/11

わたなべです。

[ruby-list:38563] Re: marshal_dump (was Re: )

From: m_seki@...
Date: 2003-10-14 22:35:00 UTC
List: ruby-list #38563
咳といいます。

matz> |[ruby-dev:21590]のextendの件はmarshal.cで気を使ってくれると
matz> |良いように思うけど、どうなのかしら。
matz> 
matz> 具体的にはどういうアクションが期待されているんでしょう。きち
matz> んと定義しようとするととたんに難しいように思います。

えっと、s_dumpの時みたいにこんな感じなのを思ってました。

--- marshal.c~  Fri Oct 10 02:45:52 2003
+++ marshal.c   Tue Oct 14 08:55:28 2003
@@ -483,8 +483,7 @@
            VALUE v;
 
            v = rb_funcall(obj, s_mdump, 0, 0);
-           w_byte(TYPE_USRMARSHAL, arg);
-           w_unique(rb_class2name(CLASS_OF(obj)), arg);
+           w_class(TYPE_USRMARSHAL, obj, arg);
            w_object(v, arg, limit);
            if (ivtbl) w_ivar(0, &c_arg);
            return;



でも、復元する時は、r_object0()してからrb_extend_object()するので
(つまり、オブジェクトが復元されてからextendされるので)
marshal_loadを持つモジュールをextendしても呼んでもらえないんですね。

      case TYPE_EXTENDED:
	{
	    VALUE m = path2module(r_unique(arg));

	    v = r_object0(arg, 0, 0);
	    rb_extend_object(v, m);
	}
	break;


残念

In This Thread