> On Jul 30, 2015, at 1:05 AM, AlexDenisov <1101.deb...@gmail.com> wrote:
> 
> The patch is a simplest fix for crash when CheckObjCCircularContainer
> applies to a message to a ’super’, e.g.:
> 
> @implementation Foo : NSMutableArray
> - foo {
>  [super addObject:nil];
> }
> @end
> 
> 
> This is, probably, not a proper fix for the problem,
> but initial patch wasn’t intended to apply checks to any kind
> of subclassing, because it, imho, over-complicates implementation:

To clarify, are you saying that the warning may lead to false positives when 
used in subclasses ?
If that’s the case could we just disable it inside collection subclasses, at 
least until the false positives can be addressed ?

> 
> This particular problem touches subclassing from a class-cluster,
> which means that the concrete subclass will have some backing storage, e.g.:
> 
> @implementation FootableArray : NSMutableArray
> {
>  NSMutableArray *_backingStorage;
> }
> 
> - addObject:(id)object {
>  [_backingStorage addObject:object];
> }
> 
> @end
> 
> In this case even adding `self` to `self` would not lead to a circular 
> container:
> 
> - foo {
>  [self addObject:self]; // puts `self` into the `_backingStorage`
> }
> 
> I would apply this patch as is and postpone a ‘proper and bullet-proof 
> implementation’
> when I, or somebody who is also interested, will have more time.
> 
> If there are any questions/suggestions/objections - let’s discuss them.
> --
> AlexDenisov
> Software Engineer, http://lowlevelbits.org
> 
> 
> <fix_circular_container_crash.patch>


_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to