From: Masao M. <mu...@hi...> - 2006-05-27 06:06:26
|
むとうです。 On Sat, 27 May 2006 12:50:21 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > From: Masao Mutoh <mu...@hi...> > Date: Sat, 27 May 2006 01:04:06 +0900 > > > むとうです。 > > > > On Fri, 26 May 2006 19:42:12 +0900 (JST) > > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > > > 酒井です。 > > > > > > なるほど・・・。 > > > > 親玉をmarkする際に、そのときに存在するすべてのプロパティ値を > > > > 拾ってmarkするようにしてしまう、という感じですね。こちらは > > > > コンテナ、GObjectならなんでも実施するという感じですね。 > > > > > > ちょっと考えてたのですが、「子やプロパティ値について、対応するRubyのオ > > > ブジェクトが存在する場合に、それをmarkする」というのは難しくはないです > > > が、それ以上のことをするのはtrivialとは言えなさそうです。 > > > # これだけだと、そこまで嬉しくなさそうだなぁ... > > > > GOBJ2RVALのタイミングでもmarkされるとこまではやるってことですかね。 > > ちょっと理解できてません(^^;)。 > > やるのは、GOBJ2RVALのタイミングでなく、RubyのGCのmark phaseでです。 > > 「そこまで嬉しくない」と書いたのは、あるglib側オブジェクトAから直接参照して > るBにはRuby側オブジェクトが存在せず、Bから参照されているCにはRuby側オブジェ > クトが存在するという場合に、AからCをmarkするのが現状では難しいから。 > (Rubyを拡張してGC終了時にフックをかけられるようにすれば出来るけど) なるほど。 > > > 上で書いたとこまでなら、暇なときにでも実装しておきます。 > > とりあえず基本的な部分を実装してコミットしました。 > コードの整理はこれからですが、とりあえず問題はないと思います。 > > > 助かります。久しぶりに復活ですねー。 > > 復活というか、やり残したことを片付けたくなったんですよ。 あぁ、そうでしたか。残念。 ところで質問なのですが、今回の対応をすることで、G_CHILD_ADD/REMOVEって 基本的に不要になる、という考えで良いんですかね。 少なくともContainer周りは不要になりますよね。 -- .:% Masao Mutoh<mu...@hi...> |