From: Kouhei S. <ko...@co...> - 2012-04-14 04:16:47
|
須藤です。 In <CAMyNdeUGJtdFtJ26BhWVL+H33gfPe38p3RwTi4B1GrNCkMOM=Q...@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 マクロの呼び出しは、最大限後回しにするように変更しようと思いますが > よろしいでしょうか? はい、それがよいと思います! |