Bus error on 32bit OSX, not 64bit
Jacob Carlborg
doob at me.com
Mon Apr 15 12:05:38 PDT 2013
On 2013-04-15 19:56, John Colvin wrote:
> Casting a function that returns void to a function that returns
> something seems bound to cause trouble. While it may be allowed in C It
> seems a bit of a leap to assume that it would work properly in D.
I don't know what to say, this is how you're supposed to call these
"objc_msgSend" functions. They part of the Objective-C runtime.
In C, if I call it like it's declare, returning void, I get a segfault:
NSRect foo (id screen)
{
NSRect rect;
((void (*)(NSRect*, id, SEL))objc_msgSend_stret)(&rect, screen,
sel_registerName("visibleFrame"));
return rect;
}
Don't ask me why it works like this.
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list