Am 14.06.2011 um 23:47 schrieb David Chisnall: > 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 I see. I hope, that if I reduce the scope to a small fixed number of id parameters, I can get by.
>> 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. Is there some exported #define (like OBJC_API_VERSION) that could be checked, which runtime I am compiling against ? > You should never need to care about any of them in your own code. Hmm, maybe it is different on GNUstep. On OSX I know that I care :) Ciao Nat! ------------------------------------------------------ Ich selbst habe mich persönlich stets an den sittlichen Gepflogenheiten des Philisters beteiligt; nicht, weil ich ihnen Wert beigemessen hätte, sondern weil ich - vorwärts, immer mal wieder! - keinen Anlaß traf, mich von ihnen zu trennen. -- H. Mann _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
