|
From: Kouhei S. <ko...@co...> - 2012-04-14 04:16:47
|
須藤です。
In <CAM...@ma...>
"[ruby-gnome2-devel-ja] G_CHILD_xxx の呼び出しタイミングについて" on Fri, 13 Apr 2012 22:21:45 +0900,
Masaaki Aoyagi <mas...@gm...> wrote:
> G_CHILD_xxx マクロはGC回避のために使用していると理解していますが、
> 呼び出しのタイミングが早くメモリリークする恐れがある箇所があると思われます。
>
> 例えば、Gtk::TextView#add_child_at_anchorの場合、
> static VALUE
> rg_add_child_at_anchor(VALUE self, VALUE child, VALUE anchor)
> {
> G_CHILD_ADD(self, child);
> gtk_text_view_add_child_at_anchor(_SELF(self), RVAL2GTKWIDGET(child),
> RVAL2GTKTEXTCHILDANCHOR(anchor));
> return self;
> }
> となっており、childに不正なオブジェクトを渡した場合メモリリークになるはずです。
その通りですね!
> G_CHILD_xxx マクロの呼び出しは、最大限後回しにするように変更しようと思いますが
> よろしいでしょうか?
はい、それがよいと思います!
|