きりかノート 3冊め

おあそびプログラミング

NSView の警告へのパッチ

rubycocoa-talk にパッチが投稿された "PATCH: fix retain-before-init problem"。「なんてマニアックなパッチを」と思ったら、Apple の中の人だった。

修正内容としてはそう複雑でもなくて、

  • Ruby 側で retain したかどうかのフラグを持つ
  • メッセージが alloc 以外のとき、retain されていなければ、retain する

ということ。基本的には、以前 ML で議論した方針とおんなじ。予想してたより、コードの変更量は少ないな。あと autorelease pool の位置を変更したりしてるんだけど、それの意図はよくわからず。

とりあえずざっと見た感じでは、疑問点はひとつだけ。

  • allocWithZone: のときも alloc と同様に処理する必要があるのでは?

まずはテストコード書いて、動作検証しますか。