かんだです。

matz / netlab.co.jp (Yukihiro Matsumoto)さんの書かれた、
	「[ruby-list:9482] Re: gtk」
からの引用です。

> まつもと ゆきひろです

> |  ただ、美しくないですね。もっと統一的に、signal_sync_args とかいう関数で
> |面倒みたいかな。これでできそうなら僕がやってきましょうか? 今週末になると
> |思いますが。
> 
> もし可能であればお願いしたいです.

  ではやってきます。


> |  あと、Data_Wrap_Struct用に nonfree() なんて宣言してますけれど、mark の指
> |定みたいに「処理しない」という指定ができるようにはできませんか?  free のと
> |ころに 0 を指定すると free() が呼ばれますよね。-1とかどうかな。
> 
> これはバグ(というかミスフィーチャ)です.以下のパッチを当て
> て下さい.-1でfree,0でなにもしません.これがあるべき姿です.

  げっ。ほんとに変えちゃっていいんですか?

|narnia|ruby-1.1c4/ext >egrep 'Data_Wrap_Struct\([^,]+,[^,]+,[^a-zA-Z0-9_,]*0[^a-zA-Z0-9_,]*,' **/*.c 
|gtk/gtk.c:    data = Data_Wrap_Struct(cData, gobj_mark, 0, gtkobj);
|gtk/gtk.c:    return Data_Wrap_Struct(gPreviewInfo, 0, 0, info);

  gtk だけか。上の 2つは free を期待しているのか確認が必要ですね。
# nonfree を期待していたとしたら、よく落ちなかったもんだ。