きりかノート 3冊め

おあそびプログラミング

RubyCococa BUG? double または float を引数にもつメソッド

先週に登録されたバグ。double または float の引数を受け取るメソッドを Ruby 側で定義し、そのメソッドが Objective-C 側から呼ばれたとき問題があるとのこと。現象は添付テストケースで再現したんだけど、まだ原因がつかめず。

いくつかアタリをつけてチェックしてみたところ、objc_msgSendv() でメソッド呼び出ししたときの、va_list のとりまわしがうまくできていない感じ。"Sending floats using objc_msgSendv" と同じような話じゃなかろーか。このケースで marg_* 系のマクロが正しく動作しないらしいので、特殊処理をしないとダメ。ppc は marg_list の構造が Messengers.subproj/objc-msg-ppc.s のコメントに書いてあるから、頑張りゃ対応できるとは思うけど、i386 も同じなのかどうかがわからんのが厳しいなあ。

(調査は継続)