===================================================================
@@ -135,6 +135,7 @@ OBJC_DEPRECATED_H = \
METHOD_NULL.h \
MetaClass.h \
Object.h \
+ Protocol.h \
STR.h \
hash.h \
objc-list.h \
===================================================================
@@ -27,9 +27,15 @@
#include "objc-private/module-abi-8.h"
#include "objc/Protocol.h"
-
@implementation Protocol
+- (BOOL) isEqual: (id)obj
+{
+ return protocol_isEqual (self, obj);
+}
+@end
+@implementation Protocol (Deprecated)
+
- (const char *)name
{
return protocol_name;
@@ -97,9 +103,8 @@
- (unsigned) hash
{
/* Compute a hash of the protocol_name; use the same hash algorithm
- * that we use for class names; protocol names and class names are
- * somewhat similar types of string spaces.
- */
+ that we use for class names; protocol names and class names are
+ somewhat similar types of string spaces. */
int hash = 0, index;
for (index = 0; protocol_name[index] != '\0'; index++)
@@ -112,9 +117,4 @@
return hash;
}
-- (BOOL) isEqual: (id)obj
-{
- return protocol_isEqual (self, obj);
-}
@end
-
===================================================================
@@ -1,5 +1,13 @@
2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
+ * Protocol.m: Moved all methods, with the exception of -isEqual:,
+ into the 'Deprecated' category.
+ * objc/Protocol.h: Removed all methods, moved to
+ objc/deprecated/Protocol.h. Include objc/deprecated/Protocol.h.
+ * objc/deprecated/Protocol.h: New.
+ * Makefile.in (OBJC_DEPRECATED_H): Added Protocol.h.
+
+2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
+
* init.c: Include objc-private/selector.h. Do not declare
__sel_register_typed_name.
* objc-private/selector.h (__sel_register_typed_name): Declare.
===================================================================
@@ -39,25 +39,16 @@
struct objc_protocol_list *protocol_list;
struct objc_method_description_list *instance_methods, *class_methods;
}
+@end
-/* The following methods have been replaced by
+/* The Protocol methods have been replaced by
protocol_getName()
protocol_conformsToProtocol()
protocol_getMethodDescription()
*/
-/* Obtaining attributes intrinsic to the protocol */
-- (const char *)name;
+#include "deprecated/Protocol.h"
-/* Testing protocol conformance */
-- (BOOL) conformsTo: (Protocol *)aProtocolObject;
-
-/* Looking up information specific to a protocol */
-- (struct objc_method_description *) descriptionForInstanceMethod:(SEL)aSel;
-- (struct objc_method_description *) descriptionForClassMethod:(SEL)aSel;
-
-@end
-
#ifdef __cplusplus
}
#endif
===================================================================
@@ -0,0 +1,13 @@
+/* The following methods were deprecated in GCC 4.6.0 and will be
+ removed in the next GCC release. */
+@interface Protocol (Deprecated)
+/* Obtaining attributes intrinsic to the protocol */
+- (const char *)name;
+
+/* Testing protocol conformance */
+- (BOOL) conformsTo: (Protocol *)aProtocolObject;
+
+/* Looking up information specific to a protocol */
+- (struct objc_method_description *) descriptionForInstanceMethod:(SEL)aSel;
+- (struct objc_method_description *) descriptionForClassMethod:(SEL)aSel;
+@end