Fix dangling reference in weak ref code.
Another test added as a result of coverage analysis.main
parent
8021533d4c
commit
ca1d45a4e6
@ -0,0 +1,35 @@
|
|||||||
|
#import "Test.h"
|
||||||
|
|
||||||
|
id __weak var;
|
||||||
|
|
||||||
|
@interface ARC : Test @end
|
||||||
|
@implementation ARC
|
||||||
|
- (id)loadWeak
|
||||||
|
{
|
||||||
|
return var;
|
||||||
|
}
|
||||||
|
- (void)setWeakFromWeak: (id __weak)anObject
|
||||||
|
{
|
||||||
|
var = anObject;
|
||||||
|
}
|
||||||
|
- (void)setWeak: (id)anObject
|
||||||
|
{
|
||||||
|
var = anObject;
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
ARC *obj = [ARC new];
|
||||||
|
{
|
||||||
|
id o1 = [Test new];
|
||||||
|
id o2 = [Test new];
|
||||||
|
[obj setWeak: o1];
|
||||||
|
assert([obj loadWeak] == o1);
|
||||||
|
[obj setWeakFromWeak: o2];
|
||||||
|
assert([obj loadWeak] == o2);
|
||||||
|
}
|
||||||
|
assert([obj loadWeak] == nil);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue