まつもと ゆきひろです

In message "[ruby-list:9481] Re: gtk"
    on 98/09/07, "D.Kanda" <MAP2303 / mapletown.net> writes:

|  かんだです。

|> えーと,すいません.ed inputは辛すぎるので-cか-uでもう一度お願
|> いできませんか? 私へ直接で構いませんので.
|
|  わかりました。
|  patch 元は、0.10 か 0.10+旧patch のどちらがいいでしょう? 

どっちでも構いません.便利な方で.

|  他の言語は知らないですが、とりあえず思いつく解決策は、signal_set_args()
|では従来通りコピーするけれど、元のオブジェクトも覚えておいて、ハンドラから
|返ってきたら整合をとるというものです。

今調べたらPerlもPythonも(私の調べた少し古いバージョンでは)こ
の辺を無視しているようです.困ったなあ.

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

もし可能であればお願いしたいです.

|  あと、Data_Wrap_Struct用に nonfree() なんて宣言してますけれど、mark の指
|定みたいに「処理しない」という指定ができるようにはできませんか?  free のと
|ころに 0 を指定すると free() が呼ばれますよね。-1とかどうかな。

これはバグ(というかミスフィーチャ)です.以下のパッチを当て
て下さい.-1でfree,0でなにもしません.これがあるべき姿です.

--- gc.c	1998/09/03 07:43:32	1.1.1.2.2.25
+++ gc.c	1998/09/07 06:22:23
@@ -691,7 +691,4 @@
 	    }
-	    if (RANY(obj)->as.data.dfree) {
+	    else if (RANY(obj)->as.data.dfree) {
 		(*RANY(obj)->as.data.dfree)(DATA_PTR(obj));
-	    }
-	    else {
-		free(DATA_PTR(obj));
 	    }