This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ObjC PR/6328


> Hi Nicola,
> 
> in fact my bug report was bugged !!
> 
> The real problem is described below, and the test case is attached.
> 
> When classes are defined in an external static library, you must
> explicitly ask the Objc-Runtime to reference them or it is not aware of
> their existence.
> 
> To do so, we are calling +initialize manually on those classes. In this
> specific case, the Objc-Runtime does not prevent further calls and will
> issue a second +initialize when trying to instanciate those classes.

Thanks - very interesting indeed (the testcase was great :-) ).

My suggestion is simply to use

 [B class];

instead of 

 [B initialize];

to have B referenced by the ObjC runtime ... that will cause the runtime
to automatically drag in B, and also call +initialize (should be
guaranteed once) and everything will work happily.

I think this is the proper way of dragging in classes, and when I changed
the testcase to do it, the runtime seemed to behave very properly.

Let me know if you are happy with this solution, or if I have missed
something.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]