From 877bf1953af3383597ad4f76971539e5e05c6d31 Mon Sep 17 00:00:00 2001 From: Nicola Pero Date: Fri, 24 Dec 2010 15:32:25 +0000 Subject: In libobjc/: 2010-12-24 Nicola Pero In libobjc/: 2010-12-24 Nicola Pero * objc/runtime.h (class_conformsToProtocol, class_copyProtocolList): Updated documentation. In gcc/testsuite/: 2010-12-24 Nicola Pero * obj-c.dg/gnu-api-2-class.m: Test that class_conformsToProtocol() does not check the superclasses. * obj-c++.dg/gnu-api-2-class.mm: Same change. From-SVN: r168226 --- libobjc/objc/runtime.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'libobjc/objc') diff --git a/libobjc/objc/runtime.h b/libobjc/objc/runtime.h index 8d38015..7ad46dc 100644 --- a/libobjc/objc/runtime.h +++ b/libobjc/objc/runtime.h @@ -768,7 +768,11 @@ objc_EXPORT Protocol **objc_copyProtocolList (unsigned int *numberOfReturnedProt objc_EXPORT BOOL class_addProtocol (Class class_, Protocol *protocol); /* Return YES if the class 'class_' conforms to Protocol 'protocol', - and NO if not. */ + and NO if not. This function does not check superclasses; if you + want to check for superclasses (in the way that [NSObject + +conformsToProtocol:] does) you need to iterate over the class + hierarchy using class_getSuperclass(), and call + class_conformsToProtocol() for each of them. */ objc_EXPORT BOOL class_conformsToProtocol (Class class_, Protocol *protocol); /* Return all the protocols that the class conforms to. The return @@ -777,7 +781,9 @@ objc_EXPORT BOOL class_conformsToProtocol (Class class_, Protocol *protocol); class. It does not include protocols adopted by superclasses. The list is terminated by NULL. Optionally, if you pass a non-NULL 'numberOfReturnedProtocols' pointer, the unsigned int that it - points to will be filled with the number of protocols returned. */ + points to will be filled with the number of protocols returned. + This function does not return protocols that superclasses conform + to. */ objc_EXPORT Protocol **class_copyProtocolList (Class class_, unsigned int *numberOfReturnedProtocols); /* Return YES if protocol 'protocol' conforms to protocol -- cgit v1.1