On 2012-10-14 22:58, Michel Fortin wrote:
Bythe way, that line is half-fishy: super_struct.super_class = cast(objc.Class) OS.objc_msgSend(id, OS.sel_superclass); It'll work as long as you have only one level of derived classes, and only as long as you don't have a class that overrides the superclass method (which would be weird, I acknowledge). You should be aware of this if you're creating new object classes, especially the first part (the second part is only relevant if you wish to implement some kind of proxy objects). Theoretically, I think it'd be better to use directly functions from the Objective-C runtime[1], which also avoids the dynamic dispatch overhead of objc_msgSend: super_struct.super_class = class_getSuperclass(object_getClass(id));
Thanks for the pointer. As a first step I'm only porting the Java code to D and this is how the Java code looks like. I'm trying to stay as close as possible to the Java code, making it easier to port future versions of SWT. But I also want the code to be correct.
-- /Jacob Carlborg
