From: Masao M. <mu...@hi...> - 2006-06-18 13:43:51
|
むとうです。 On Sun, 18 Jun 2006 02:50:47 +0900 Masao Mutoh <mu...@hi...> wrote: > むとうです。 > 不思議なのが、5.で以下のようなデバッグコードを入れて実行すると、 > if (FL_TEST(klass, FL_SINGLETON)) { > super = RCLASS(klass)->super; > g_print("rbgobj_lookup_class: %s\n", rb_class2name(super)); > g_print("rbgobj_lookup_class: %s\n", rb_class2name(CLASS_OF(super))); > } else { > > 最初のsuperが Gtk::Labelなのですが、CLASS_OF(super)の方がFooableを返すんですよね。 > でも、superがGtk::Labelなのに、次のrbgobj_lookup_class(super)のrb_hash_arefで > Fooableが呼び出されるのもよくわかりません・・・。 > #特異クラス周りの動作がよくわかってないのが問題なんですが・・・。 super = RCLASS(klass)->super; の部分を super = rb_class_real(klass); に変えたら直ったみたいです。 ということで、CVSにあげました。 何か問題があったら言ってください。 -- .:% Masao Mutoh<mu...@hi...> |