ObjFW  Diff

Differences From Artifact [c0d1405d27]:

To Artifact [9f39113692]:


19
20
21
22
23
24
25





























26
27
28
29
30
31
32
#include <string.h>

#import "runtime.h"
#import "runtime-private.h"

@implementation Protocol
@end






























BOOL
class_conformsToProtocol(Class cls, Protocol *p)
{
	struct objc_protocol_list *pl;
	struct objc_category **cats;
	long i, j;







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <string.h>

#import "runtime.h"
#import "runtime-private.h"

@implementation Protocol
@end

inline const char*
protocol_getName(Protocol *p)
{
	return p->name;
}

inline BOOL
protocol_isEqual(Protocol *a, Protocol *b)
{
	return !strcmp(protocol_getName(a), protocol_getName(b));
}

BOOL
protocol_conformsToProtocol(Protocol *a, Protocol *b)
{
	struct objc_protocol_list *pl;
	size_t i;

	if (protocol_isEqual(a, b))
		return YES;

	for (pl = a->protocol_list; pl != NULL; pl = pl->next)
		for (i = 0; i < pl->count; i++)
			if (protocol_conformsToProtocol(pl->list[i], b))
				return YES;

	return NO;
}

BOOL
class_conformsToProtocol(Class cls, Protocol *p)
{
	struct objc_protocol_list *pl;
	struct objc_category **cats;
	long i, j;