NSView の警告へのパッチ
rubycocoa-talk にパッチが投稿された "PATCH: fix retain-before-init problem"。「なんてマニアックなパッチを」と思ったら、Apple の中の人だった。
修正内容としてはそう複雑でもなくて、
- Ruby 側で retain したかどうかのフラグを持つ
- メッセージが alloc 以外のとき、retain されていなければ、retain する
ということ。基本的には、以前 ML で議論した方針とおんなじ。予想してたより、コードの変更量は少ないな。あと autorelease pool の位置を変更したりしてるんだけど、それの意図はよくわからず。
とりあえずざっと見た感じでは、疑問点はひとつだけ。
- allocWithZone: のときも alloc と同様に処理する必要があるのでは?
まずはテストコード書いて、動作検証しますか。