Hiroyuki Ikezoe
poinc****@ikezo*****
2006年 6月 9日 (金) 19:37:39 JST
zoeです。 2006-06-09 (金) の 11:33 +0900 に Kouhei Sutou さんは書きました: > 須藤です. > > GObjectの各メンバがプロパティ化されていると,メタプログラミングチッ > ク的なことができるようになります. > > Ruby-GNOME2では,これを利用してGC対策を行っています.つまり,普通 > に参照されているオブジェクトだけではなくて,生きているオブジェクト > のプロパティに設定されているオブジェクトまでを参照されているオブジェ > クトとみなして,各オブジェクトをGCから保護しています. 実は今までGObjectのプロパティって何がうれしいのか全然分かってなかったん ですが、須藤さんの話を聞いて、初めてプロパティってすばらしいと思いまし た。 # 今まではg_object_set/getができるくらいにしか思ってなかった。 > ということで,気付いた範囲でよいので,メンバはできるだけプロパティ > 化してあげてください.とりあえず,KzDownloaderGroupのitemsがプロパ > ティ化されていると嬉しいです. というわけで、KzDownloaderGroupだけやっておきました。 プロパティ化するところは、みんな同じやり方でいけるのでGObjectなコードに 慣れるのに格好の練習台かと思われますので、コミット権もってる方はガリガリ やってみてはどうでしょ? ところで、KzDownloaderGroupのitemsってただのポインタ(GSListなので)なんで すけど、これでもGCうまくいくんでしょうか?