From: KUBO T. <ku...@ji...> - 2004-11-21 18:00:27
|
久保です。 Masao Mutoh <mu...@hi...> writes: >> Ruby/GLib2 に手をいれないといけないような予感が....。 >> 今の Ruby/GLib2 だと、GObject に対応する ruby object を生成すると >> GObject の refcount が 1 上がるのですが、refcount を上げずに weakref >> のみで参照する ruby object が必要かも。 > > なるほど...。 > あ、もしかして、RBGTK_INITIALIZEでg_object_refしてるのもマズイですかねぇ。 > 一度、そのあたりを見直す時期なのかもしれませんね。 少なくとも GnomeCanvasItem の場合は GObject の refcount は上げないほう が良さそうですが、一律に同じ変更を加えると他の GtkObject で逆に問題を 起こしそうな感じがします。 # というか、quick hack でやってみたら落ちた....。 GtkObject と GnomeCanvasItem の使用方法の違いが影響しているのかも。 例えば、GtkObject は Object を生成してからどこかに所属させるという手順 で使用しますが、GnomeCanvasItem は Object を生成する時点でどこに所属さ せるかを指定させます。これが Object の管理方法の違いに影響しているので はないかと推測しています。 # 現時点では単なる推測です。確認していません。p(^^;) >> > ちなみに、これって、久保さんの環境だとサンプルでも再現しますか? >> > というのは私の環境ではもうこの現象出ていないんですよね。 >> >> 再現しています。 > > うーん、なんでだろう。やっぱり何かのバージョンの違いなのかなぁ。 依存するとしたら、finalizer が ruby object を free する順番かな。 では、再見 -- 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |