|
From: Masaaki A. <mas...@gm...> - 2012-04-13 13:21:56
|
青柳です。
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 マクロの呼び出しは、最大限後回しにするように変更しようと思いますが
よろしいでしょうか?
|