On 14 Jun 2011, at 22:38, Nat! wrote:

> Hmm interesting, though I don't see offhand, why dividing  what objc_msgSend 
> does  into separate steps makes it inherently more portable. I will have to 
> look into my code, to see if its feasible to roll my own objc_msgSend, 
> (because I use it a lot as I found out :) ).

objc_msgSend() is a trampoline function.  It must pass all of its arguments to 
the called IMP.  This is not possible in C.  Apple implements a version of it 
in assembly for every calling convention, for every architecture, and for every 
platform that they support (currently, this comes to about a dozen 
implementations, and they support a very narrow range of platforms compared to 
GNUstep).

> Ah and one more question, regarding forwarding is __objc_msg_forward (instead 
> of __objc_msg_forward2) ever really used or can I ignore it, when I run atop 
> a current runtime ?

The forwarding hooks that are used depend on the runtime.  See 
GSFFIInvocation.m for how they are all used.  You should never need to care 
about any of them in your own code.

David

-- Send from my Jacquard Loom


_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to