From: matz@... (Yukihiro Matsumoto) Date: 1998-02-25T12:43:11+09:00 Subject: [ruby-dev:1533] Re: final.rb:35: [BUG] bug in variable assignment まつもと ゆきひろです In message "[ruby-dev:1505] final.rb:35: [BUG] bug in variable assignment" on 98/02/21, Shugo Maeda writes: |前田です。 | |1.1b8でfinal.rbを使うとcore dumpするようです。 |require 'sync'しているスクリプトで落ちました。 わかりました.finalizersを呼ぶ時点でオブジェクトが既にfreeさ れている場合がありました.以下にパッチを付けておきます. -- diff -u -1 -r1.1.1.2.2.5 gc.c --- gc.c 1998/02/18 01:56:39 1.1.1.2.2.5 +++ gc.c 1998/02/25 03:41:30 @@ -990,2 +990,3 @@ + /* run finalizers */ for (i = 0; i < heaps_used; i++) { @@ -994,2 +995,9 @@ run_final(p); + p++; + } + } + /* run data object's finaliers */ + for (i = 0; i < heaps_used; i++) { + p = heaps[i]; pend = p + HEAP_SLOTS; + while (p < pend) { if (BUILTIN_TYPE(p) == T_DATA &&