From: matz@... (Yukihiro Matsumoto) Date: 2001-10-03T08:50:52+09:00 Subject: [ruby-dev:14847] Re: custom marshal まつもと ゆきひろです In message "[ruby-dev:14845] Re: custom marshal" on 01/10/02, Yukihiro Matsumoto writes: |違う方法でやろうと思ってます(basicNewに近い方法)。 |もうちょっと様子を見ててください。 結局、以下の方法でいこうと思います。 * TYPE(v) == T_OBJECT を追加 TYPE_UCLASSはT_OBJECT以外に適用されるはずですから、この チェックを追加することで、ほとんどのケースは除去できます。 * allocation frameworkの追加 オブジェクトの割り当てを各クラスのallocateメソッドによっ て行うようにRuby全体を変更し、TYPE_UCLASSに対して、もう ひとつ別のオブジェクトをallocateし、そのオブジェクトと r_object()の結果のTYPEが一致するかを確認する、という方法 でより厳密なチェックを行います。 これで、(becomeの能力は下がりますが)落ちることはなくなると思 います。 まつもと ゆきひろ /:|)