1
2
3
4
5
6
7
8
9
|
/*
* Copyright (c) 2008-2021 Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
|
|
|
1
2
3
4
5
6
7
8
9
|
/*
* Copyright (c) 2008-2022 Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
|
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
for (struct objc_protocol_list *protocolList = class->protocols;
protocolList != NULL; protocolList = protocolList->next)
for (long i = 0; i < protocolList->count; i++)
if (protocol_conformsToProtocol(protocolList->list[i],
protocol))
return true;
objc_global_mutex_lock();
if ((categories = objc_categories_for_class(class)) == NULL) {
objc_global_mutex_unlock();
return false;
}
for (long i = 0; categories[i] != NULL; i++) {
for (struct objc_protocol_list *protocolList =
categories[i]->protocols; protocolList != NULL;
protocolList = protocolList->next) {
for (long j = 0; j < protocolList->count; j++) {
if (protocol_conformsToProtocol(
protocolList->list[j], protocol)) {
objc_global_mutex_unlock();
return true;
}
}
}
}
objc_global_mutex_unlock();
return false;
}
|
|
|
|
|
|
|
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
for (struct objc_protocol_list *protocolList = class->protocols;
protocolList != NULL; protocolList = protocolList->next)
for (long i = 0; i < protocolList->count; i++)
if (protocol_conformsToProtocol(protocolList->list[i],
protocol))
return true;
objc_globalMutex_lock();
if ((categories = objc_categoriesForClass(class)) == NULL) {
objc_globalMutex_unlock();
return false;
}
for (long i = 0; categories[i] != NULL; i++) {
for (struct objc_protocol_list *protocolList =
categories[i]->protocols; protocolList != NULL;
protocolList = protocolList->next) {
for (long j = 0; j < protocolList->count; j++) {
if (protocol_conformsToProtocol(
protocolList->list[j], protocol)) {
objc_globalMutex_unlock();
return true;
}
}
}
}
objc_globalMutex_unlock();
return false;
}
|