From: nobu@... Date: 2004-09-27T13:16:57+09:00 Subject: [ruby-dev:24356] Re: `dump': uninitialized struct (TypeError) なかだです。 At Mon, 27 Sep 2004 11:46:18 +0900, nobu@ruby-lang.org wrote in [ruby-dev:24352]: > > 次のように struct を dump できません。 > > > > % ./ruby -ve 'Marshal.dump(Struct.new("A", :a).new)' > > ruby 1.9.0 (2004-09-24) [i686-linux] > > -e:1:in `dump': uninitialized struct (TypeError) > > from -e:1 > > __member__から__members__に変更になったのにmarshal.cが追従して > ないんですが、むしろstruct_members()をexternにしたほうがいいん > じゃないでしょうか。 一ヶ所見落としてました。 Index: marshal.c =================================================================== RCS file: /cvs/ruby/src/ruby/marshal.c,v retrieving revision 1.115 diff -u -2 -p -r1.115 marshal.c --- marshal.c 17 Aug 2004 09:02:40 -0000 1.115 +++ marshal.c 27 Sep 2004 04:12:39 -0000 @@ -1197,5 +1194,5 @@ r_object0(arg, proc, ivp, extmod) klass = path2class(r_unique(arg)); - mem = rb_struct_iv_get(klass, "__member__"); + mem = rb_struct_s_members(klass); if (mem == Qnil) { rb_raise(rb_eTypeError, "uninitialized struct"); -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦