From: nobu.nakada@... Date: 2004-02-10T18:52:30+09:00 Subject: [ruby-dev:22856] Re: `to_s': method `to_s' overridden (TypeError) なかだです。 At Tue, 10 Feb 2004 18:28:15 +0900, Yukihiro Matsumoto wrote in [ruby-dev:22855]: > |外しときましたが、DMETHODについては? あまりするとは思えませんが、 > |method -> define_method -> method ... と繰り返すとそのたびにラッ > |パーが重なっていきます。 > > 外せるものなら外した方が良いでしょうけど。できます? [ruby-dev:22850]のこの辺がそうです。 @@ -8914,6 +8907,9 @@ method_proc(method) + if (nd_type(mdata->body) == NODE_BMETHOD) { + return mdata->body->nd_cval; + } + proc = rb_iterate((VALUE(*)_((VALUE)))mproc, 0, bmcall, method); @@ -8998,5 +8994,20 @@ rb_mod_define_method(argc, argv, mod) } if (RDATA(body)->dmark == (RUBY_DATA_FUNC)bm_mark) { - node = NEW_DMETHOD(method_unbind(body)); + struct METHOD *method = (struct METHOD *)DATA_PTR(body); + VALUE rklass = method->rklass; + node = method->body; > |もう一つ、rb_mod_le()は何だったか拡張ライブラリで使えたほうがい > |いなぁと思ったことがあるのですが。名前がよくないかな。 > > 良い名前さえあれば。 rb_inherited_p(klass, super) rb_subclass_p(klass, super) とかどうですか。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦