8

以下のスニペットは、Apple の ObjC ランタイム (libobjc) ソース コードから取得したものです。これは正確には何を意味するのだろうか。(あまりGoogle対応ではありません、申し訳ありません)

// HACK -- the use of these functions must be after the @implementation
id bypass_msgSend_retain(NSObject *obj) asm("-[NSObject retain]");
void bypass_msgSend_release(NSObject *obj) asm("-[NSObject release]");
id bypass_msgSend_autorelease(NSObject *obj) asm("-[NSObject autorelease]");

アップデート:

bypass_msgSend_release() の呼び出しが生成するものは次のとおりです。

movl    -4(%ebp), %eax
movl    %eax, (%esp)
calll   "-[NSObject release]"
4

1 に答える 1