mirror of
https://github.com/darlinghq/darling-libobjc2.git
synced 2025-03-07 07:57:28 +00:00
Fix fast-path test to work with subclasses correctly.
This commit is contained in:
parent
81131acfbc
commit
e34be81404
9
dtable.c
9
dtable.c
@ -51,26 +51,25 @@ static void checkARCAccessors(Class cls)
|
||||
autorelease = sel_registerName("autorelease");
|
||||
isARC = sel_registerName("_ARCCompliantRetainRelease");
|
||||
}
|
||||
if (ownsMethod(cls, isARC))
|
||||
{
|
||||
objc_set_class_flag(cls, objc_class_flag_fast_arc);
|
||||
return;
|
||||
}
|
||||
struct objc_slot *slot = objc_get_slot(cls, retain);
|
||||
if (!ownsMethod(slot->owner, isARC))
|
||||
{
|
||||
objc_clear_class_flag(cls, objc_class_flag_fast_arc);
|
||||
return;
|
||||
}
|
||||
slot = objc_get_slot(cls, release);
|
||||
if (!ownsMethod(slot->owner, isARC))
|
||||
{
|
||||
objc_clear_class_flag(cls, objc_class_flag_fast_arc);
|
||||
return;
|
||||
}
|
||||
slot = objc_get_slot(cls, autorelease);
|
||||
if (!ownsMethod(slot->owner, isARC))
|
||||
{
|
||||
objc_clear_class_flag(cls, objc_class_flag_fast_arc);
|
||||
return;
|
||||
}
|
||||
objc_set_class_flag(cls, objc_class_flag_fast_arc);
|
||||
}
|
||||
|
||||
static void collectMethodsForMethodListToSparseArray(
|
||||
|
Loading…
x
Reference in New Issue
Block a user