r216282 - Objective-C. Update my previous patch to not warn if

jahanian fjahanian at apple.com
Mon Aug 25 11:12:06 PDT 2014


On Aug 25, 2014, at 10:57 AM, Jean-Daniel Dupas <devlists at shadowlab.org> wrote:

> 
> Le 25 août 2014 à 18:47, jahanian <fjahanian at apple.com> a écrit :
> 
>> 
>> 
>> On Aug 25, 2014, at 9:35 AM, jahanian <fjahanian at apple.com> wrote:
>> 
>>> 
>>> On Aug 24, 2014, at 12:36 AM, Jean-Daniel Dupas <devlists at shadowlab.org> wrote:
>>> 
>>>> Are you sure excluding that case is right ?
>>>> 
>>>> AFAIK, call [super initialize] is suspicious, as the runtime already call it for each class in the hierarchy.
>>> [super initialize] is called from inside +initialize implementations.
>>> So, we don’t want to warn.
>> 
>> I guess, I can restrict this to not warn if it is inside +initialize implementation and warn in other situations.
>> 
> 

Makes sense to me. Thanks for clarification. I cc our runtime folk who suggested the ‘super’ thing.
I am wondering if there are other scenarios of initialization that Greg has in mind.

- Fariborz

> My point is that even in +initialize implementation, that method should never be called directly.
> 
> When the runtime load a class, it will first load all parents classes, and call +initialize on each class.
> 
> For instance, if we have a class Foo, a class A that inherits Foo and a class B that inherits A, with each class implementing +initialize.
> 
> The first time trying to access B, the runtime calls [Foo initialize], then it calls [A initialize], and finally it calls [B initialize], so there is no reason that one of these classes should call the super implementation.
> 
> 





More information about the cfe-commits mailing list