まつもと ゆきひろです
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));
}