From: matz@... (Yukihiro Matsumoto) Date: 1998-09-07T15:32:16+09:00 Subject: [ruby-list:9482] Re: gtk まつもと ゆきひろです In message "[ruby-list:9481] Re: gtk" on 98/09/07, "D.Kanda" 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)); }