[cfe-dev] Missing dealloc analysis
devlists at shadowlab.org
Thu Jul 3 00:55:22 PDT 2008
Le 3 juil. 08 à 07:35, Nikita Zhuk a écrit :
> I noticed the addition of missing dealloc analysis in r53075. It's a
> good idea to check that dealloc is implemented and that it always
> calls [super dealloc], but there're couple of points I would like to
> 1. It should be disabled in GC environment, because dealloc methods
> are not called under GC
> 2. In non-GC environment, the primary function of dealloc method is to
> update retain counts of variables the object being dealloced is
> pointing to. So that usually means that dealloc must be implemented
> when an object has some ivars. Dealloc is not always required, and
> there're lot of classes which don't need it (e.g. singleton classes).
> Currently missing dealloc analysis requires every class to implement
> dealloc and it's causing a lot of false positives.
> I'm not completely sure if absence of ivars should be the only factor
> which disables missing dealloc analysis, but at least in my case it
> would suppress a lot of false positives.
dealloc is also used to nullify the pointer in some other class that
have a weak reference on the disposed instance.
You can have an object without ivar that is declare delegate of an
other object and should call -[setDelegate:nil] on dealloc.
You have the same issue with notification listeners, that have to
unregister when they are disposed.
And so, defining if dealloc should be implemented or not is not an
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 2427 bytes
Desc: not available
More information about the cfe-dev