Fix fast-ARC checks.

Check for release and autorelease as well as for retain.
main
rfm 6 years ago committed by David Chisnall
parent 78ff24516c
commit 8dbee52d24

@ -104,14 +104,14 @@ static void checkARCAccessors(Class cls)
objc_clear_class_flag(cls, objc_class_flag_fast_arc); objc_clear_class_flag(cls, objc_class_flag_fast_arc);
return; return;
} }
owner = ownerForMethod(cls, retain); owner = ownerForMethod(cls, release);
if ((NULL != owner) && !ownsMethod(owner, isARC)) if ((NULL != owner) && !ownsMethod(owner, isARC))
{ {
ARC_DEBUG_LOG("%s does not support ARC correctly (implements release)\n", cls->name); ARC_DEBUG_LOG("%s does not support ARC correctly (implements release)\n", cls->name);
objc_clear_class_flag(cls, objc_class_flag_fast_arc); objc_clear_class_flag(cls, objc_class_flag_fast_arc);
return; return;
} }
owner = ownerForMethod(cls, retain); owner = ownerForMethod(cls, autorelease);
if ((NULL != owner) && !ownsMethod(owner, isARC)) if ((NULL != owner) && !ownsMethod(owner, isARC))
{ {
ARC_DEBUG_LOG("%s does not support ARC correctly (implements autorelease)\n", cls->name); ARC_DEBUG_LOG("%s does not support ARC correctly (implements autorelease)\n", cls->name);

Loading…
Cancel
Save