まつもと ゆきひろです

In message "[ruby-ext:00345] Data_Wrap_Struct GC"
    on 99/07/29, "Dai.K." <MAP2303 / mapletown.net> writes:

|  かんだ@楓街です。

|  Data_Wrap_Struct() で C構造体を持つオブジェクトを作ります。
|  ここで、同じC構造体を持つ別の Ruby Object を生成した場合、一方の参照が消
|えたら、そのオブジェクトはもう一方の状態に関係なく GC されると思います。
|  この場合、同様にチェック無く free に指定した関数まで呼ばれますか?

Data_Wrap_Struct()は構造体がシェアされることを想定してません。
ですから、共有しているオブジェクトに対してGCが起こると最初の
オブジェクトがsweepされた時点でfreeされちゃいます。というこ
とは2番目以降は全部 freeing already freed poiner ですね。