From c06a8664093c40aad4e27e5329cce5bb37156109 Mon Sep 17 00:00:00 2001
From: Nicola Pero <nicola.pero@meta-innovation.com>
Date: Sun, 19 Dec 2010 00:54:27 +0000
Subject: [PATCH] In libobjc/: 2010-12-19 Nicola Pero
 <nicola.pero@meta-innovation.com>

In libobjc/:
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.

From-SVN: r168040
---
 libobjc/ChangeLog                  |  9 +++++++++
 libobjc/Makefile.in                |  1 +
 libobjc/Protocol.m                 | 18 +++++++++---------
 libobjc/objc/Protocol.h            | 15 +++------------
 libobjc/objc/deprecated/Protocol.h | 13 +++++++++++++
 5 files changed, 35 insertions(+), 21 deletions(-)
 create mode 100644 libobjc/objc/deprecated/Protocol.h

diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index bef28fb9dc55..fdd0b67e1a44 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,12 @@
+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
diff --git a/libobjc/Makefile.in b/libobjc/Makefile.in
index 2051b3eecfb1..0040511bf614 100644
--- a/libobjc/Makefile.in
+++ b/libobjc/Makefile.in
@@ -135,6 +135,7 @@ OBJC_DEPRECATED_H = \
   METHOD_NULL.h \
   MetaClass.h \
   Object.h \
+  Protocol.h \
   STR.h \
   hash.h \
   objc-list.h \
diff --git a/libobjc/Protocol.m b/libobjc/Protocol.m
index 27c5c7643294..7c9207510653 100644
--- a/libobjc/Protocol.m
+++ b/libobjc/Protocol.m
@@ -27,8 +27,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #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
 {
@@ -97,9 +103,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 - (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 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
   return hash;
 }
 
-- (BOOL) isEqual: (id)obj
-{
-  return protocol_isEqual (self, obj);
-}
 @end
-
diff --git a/libobjc/objc/Protocol.h b/libobjc/objc/Protocol.h
index ad4bbd33d95e..e230940279a7 100644
--- a/libobjc/objc/Protocol.h
+++ b/libobjc/objc/Protocol.h
@@ -39,24 +39,15 @@ extern "C" {
   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;
-
-/* 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
+#include "deprecated/Protocol.h"
 
 #ifdef __cplusplus
 }
diff --git a/libobjc/objc/deprecated/Protocol.h b/libobjc/objc/deprecated/Protocol.h
new file mode 100644
index 000000000000..7a77f51a0ddf
--- /dev/null
+++ b/libobjc/objc/deprecated/Protocol.h
@@ -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
-- 
GitLab