From: Masao M. <mu...@hi...> - 2004-11-22 13:58:44
|
むとうです。 On Mon, 22 Nov 2004 10:18:18 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保です。 > > 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 でやってみたら落ちた....。 実は私もやってみました... がダメでした... orz。 > GtkObject と GnomeCanvasItem の使用方法の違いが影響しているのかも。 > 例えば、GtkObject は Object を生成してからどこかに所属させるという手順 > で使用しますが、GnomeCanvasItem は Object を生成する時点でどこに所属さ > せるかを指定させます。これが Object の管理方法の違いに影響しているので > はないかと推測しています。 > # 現時点では単なる推測です。確認していません。p(^^;) なるほど。まずはその辺を調べた方が良さそうですね。 もしかしたらGnomeCanvasのみで対応した方が良いかもしれない、という結論も あるかもしれませんね。 > >> > ちなみに、これって、久保さんの環境だとサンプルでも再現しますか? > >> > というのは私の環境ではもうこの現象出ていないんですよね。 > >> > >> 再現しています。 > > > > うーん、なんでだろう。やっぱり何かのバージョンの違いなのかなぁ。 > > 依存するとしたら、finalizer が ruby object を free する順番かな。 この辺、ややこしいですねぇ。うーん、またしばらく悩みますです。 -- .:% Masao Mutoh<mu...@hi...> |