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 マクロの呼び出しは、最大限後回しにするように変更しようと思いますが よろしいでしょうか? |