From a19fac96a2f50a673543ec79d8bce42d63df6d8f Mon Sep 17 00:00:00 2001
From: Nicola Pero <nicola.pero@meta-innovation.com>
Date: Sat, 11 Sep 2010 12:58:27 +0000
Subject: [PATCH] In libobjc/:

        * objc/runtime.h: Moved to objc-private/runtime.h.  Do not include
        all the objc/*.h files.
        * objc-private/runtime.h: New file.
        * archive.c: Include objc-private/runtime.h (and required objc/*.h
        files) instead of objc/runtime.h.
        * class.c: Same change.
        * hash.c: Same change.
        * init.c: Same change.
        * misc.c: Same change.
        * nil_method.c: Same change.
        * objects.c: Same change.
        * sarray.c: Same change.
        * selector.c: Same change.
        * sendmsg.c: Same change.
        * thr.c: Same change.

From-SVN: r164213
---
 libobjc/ChangeLog                        | 18 ++++++++++++++++++
 libobjc/archive.c                        |  7 ++++++-
 libobjc/class.c                          |  7 ++++---
 libobjc/hash.c                           |  7 +++++--
 libobjc/init.c                           |  7 ++++++-
 libobjc/misc.c                           |  7 ++++++-
 libobjc/nil_method.c                     |  7 ++++++-
 libobjc/{objc => objc-private}/runtime.h | 21 +++++++++++++--------
 libobjc/objects.c                        |  6 +++++-
 libobjc/sarray.c                         |  7 ++++++-
 libobjc/selector.c                       |  7 ++++++-
 libobjc/sendmsg.c                        |  7 ++++++-
 libobjc/thr.c                            |  6 +++++-
 13 files changed, 92 insertions(+), 22 deletions(-)
 rename libobjc/{objc => objc-private}/runtime.h (92%)

diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index 431c7fc20098..784056bf1e5b 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,21 @@
+2010-09-11  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+	* objc/runtime.h: Moved to objc-private/runtime.h.  Do not include
+	all the objc/*.h files.
+	* objc-private/runtime.h: New file.
+	* archive.c: Include objc-private/runtime.h (and required objc/*.h
+	files) instead of objc/runtime.h.
+	* class.c: Same change.
+	* hash.c: Same change.
+	* init.c: Same change.
+	* misc.c: Same change.
+	* nil_method.c: Same change.
+	* objects.c: Same change.
+	* sarray.c: Same change.
+	* selector.c: Same change.
+	* sendmsg.c: Same change.
+	* thr.c: Same change.
+	
 2010-09-11  Nicola Pero  <nicola.pero@meta-innovation.com>
 
 	* objc/deprecated/struct_objc_selector.h: New file.  Definition of
diff --git a/libobjc/archive.c b/libobjc/archive.c
index 6ac25fbd9a13..5275c63042b4 100644
--- a/libobjc/archive.c
+++ b/libobjc/archive.c
@@ -23,7 +23,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
 #include "tconfig.h"
-#include "objc/runtime.h"
+#include "objc/objc.h"
+#include "objc/objc-api.h"
+#include "objc/thr.h"
+#include "objc/hash.h"
+#include "objc/objc-list.h" 
+#include "objc-private/runtime.h"
 #include "objc/typedstream.h"
 #include "objc/encoding.h"
 #include <stdlib.h>
diff --git a/libobjc/class.c b/libobjc/class.c
index 58f23194a2ea..f3bb07b1980f 100644
--- a/libobjc/class.c
+++ b/libobjc/class.c
@@ -87,12 +87,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
   classes from the table - and the difficult thing with lock-free data
   structures is freeing data when is removed from the structures.  */
 
-#include "objc/runtime.h"            /* the kitchen sink */
-#include "objc/sarray.h"
-
 #include "objc/objc.h"
 #include "objc/objc-api.h"
 #include "objc/thr.h"
+#include "objc/hash.h"
+#include "objc/objc-list.h" 
+#include "objc-private/runtime.h"            /* the kitchen sink */
+#include "objc/sarray.h"
 
 /* We use a table which maps a class name to the corresponding class
  * pointer.  The first part of this file defines this table, and
diff --git a/libobjc/hash.c b/libobjc/hash.c
index 21d9458c8352..69b0b9f21627 100644
--- a/libobjc/hash.c
+++ b/libobjc/hash.c
@@ -24,9 +24,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #include "assert.h"
 
+#include "objc/objc.h"
+#include "objc/objc-api.h"
+#include "objc/thr.h"
 #include "objc/hash.h"
-
-#include "objc/runtime.h"		/* for DEBUG_PRINTF */
+#include "objc/objc-list.h" 
+#include "objc-private/runtime.h"		/* for DEBUG_PRINTF */
 
 /* These two macros determine when a hash table is full and
    by how much it should be expanded respectively.
diff --git a/libobjc/init.c b/libobjc/init.c
index 138f9077472d..ea6ab38569ea 100644
--- a/libobjc/init.c
+++ b/libobjc/init.c
@@ -24,7 +24,12 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
-#include "objc/runtime.h"
+#include "objc/objc.h"
+#include "objc/objc-api.h"
+#include "objc/thr.h"
+#include "objc/hash.h"
+#include "objc/objc-list.h" 
+#include "objc-private/runtime.h"
 
 /* The version number of this runtime.  This must match the number 
    defined in gcc (objc-act.c).  */
diff --git a/libobjc/misc.c b/libobjc/misc.c
index ab7f568ebc00..987acfc2e204 100644
--- a/libobjc/misc.c
+++ b/libobjc/misc.c
@@ -27,7 +27,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #define __USE_FIXED_PROTOTYPES__
 #include <stdlib.h>
-#include "objc/runtime.h"
+#include "objc/objc.h"
+#include "objc/objc-api.h"
+#include "objc/thr.h"
+#include "objc/hash.h"
+#include "objc/objc-list.h" 
+#include "objc-private/runtime.h"
 
 /*
 ** Error handler function
diff --git a/libobjc/nil_method.c b/libobjc/nil_method.c
index f73505cab551..c58515baa5b7 100644
--- a/libobjc/nil_method.c
+++ b/libobjc/nil_method.c
@@ -26,7 +26,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 /* This is the nil method, the function that is called when the receiver
    of a method is nil */
 
-#include "objc/runtime.h"
+#include "objc/objc.h"
+#include "objc/objc-api.h"
+#include "objc/thr.h"
+#include "objc/hash.h"
+#include "objc/objc-list.h" 
+#include "objc-private/runtime.h"
 
 /* When the receiver of a method invocation is nil, the runtime
    returns nil_method() as the method implementation.  This function
diff --git a/libobjc/objc/runtime.h b/libobjc/objc-private/runtime.h
similarity index 92%
rename from libobjc/objc/runtime.h
rename to libobjc/objc-private/runtime.h
index 190d7efb649c..c924e4d49750 100644
--- a/libobjc/objc/runtime.h
+++ b/libobjc/objc-private/runtime.h
@@ -22,6 +22,19 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
+/* You need to include this file after including a number of standard ObjC files.
+
+The original list was:
+
+#include "objc/objc.h"
+#include "objc/objc-api.h"
+#include "objc/thr.h"
+#include "objc/hash.h"
+#include "objc/objc-list.h"
+
+but can almost certainly be shrinked down.
+
+*/
 
 #ifndef __objc_runtime_INCLUDE_GNU
 #define __objc_runtime_INCLUDE_GNU
@@ -34,14 +47,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #include <stddef.h>		/* so noone else will get system versions */
 #include <assert.h>
 
-#include "objc.h"		/* core data types */
-#include "objc-api.h"		/* runtime api functions */
-
-#include "thr.h"		/* thread and mutex support */
-
-#include "hash.h"		/* hash structures */
-#include "objc-list.h"		/* linear lists */
-
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
diff --git a/libobjc/objects.c b/libobjc/objects.c
index 36ff8675a2f1..10ac3a991022 100644
--- a/libobjc/objects.c
+++ b/libobjc/objects.c
@@ -25,7 +25,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #include "tconfig.h"         /* include defs of bzero for target */
 #include "objc/objc.h"
-#include "objc/runtime.h"		/* the kitchen sink */
+#include "objc/objc-api.h"
+#include "objc/thr.h"
+#include "objc/hash.h"
+#include "objc/objc-list.h" 
+#include "objc-private/runtime.h"		/* the kitchen sink */
 
 #if OBJC_WITH_GC
 # include <gc.h>
diff --git a/libobjc/sarray.c b/libobjc/sarray.c
index bb80ae03ec36..c4d7fbb6b364 100644
--- a/libobjc/sarray.c
+++ b/libobjc/sarray.c
@@ -24,7 +24,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 
 #include "objc/sarray.h"
-#include "objc/runtime.h"
+#include "objc/objc.h"
+#include "objc/objc-api.h"
+#include "objc/thr.h"
+#include "objc/hash.h"
+#include "objc/objc-list.h" 
+#include "objc-private/runtime.h"
 #include <stdio.h>
 #include "assert.h"
 
diff --git a/libobjc/selector.c b/libobjc/selector.c
index 226ef7db3103..1b611419da7f 100644
--- a/libobjc/selector.c
+++ b/libobjc/selector.c
@@ -23,7 +23,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
 
-#include "objc/runtime.h"
+#include "objc/objc.h"
+#include "objc/objc-api.h"
+#include "objc/thr.h"
+#include "objc/hash.h"
+#include "objc/objc-list.h" 
+#include "objc-private/runtime.h"
 #include "objc/sarray.h"
 #include "objc/encoding.h"
 
diff --git a/libobjc/sendmsg.c b/libobjc/sendmsg.c
index 8b1845104e50..5b0d3604a7bf 100644
--- a/libobjc/sendmsg.c
+++ b/libobjc/sendmsg.c
@@ -31,7 +31,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #include "tconfig.h"
 #include "coretypes.h"
 #include "tm.h"
-#include "objc/runtime.h"
+#include "objc/objc.h"
+#include "objc/objc-api.h"
+#include "objc/thr.h"
+#include "objc/hash.h"
+#include "objc/objc-list.h"
+#include "objc-private/runtime.h"
 #include "objc/sarray.h"
 #include "objc/encoding.h"
 #include "runtime-info.h"
diff --git a/libobjc/thr.c b/libobjc/thr.c
index 4bdbb5d1a276..b2a896a0f454 100644
--- a/libobjc/thr.c
+++ b/libobjc/thr.c
@@ -36,7 +36,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #include "tm.h"
 #include "defaults.h"
 #include "objc/thr.h"
-#include "objc/runtime.h"
+#include "objc/objc.h"
+#include "objc/objc-api.h"
+#include "objc/hash.h"
+#include "objc/objc-list.h" 
+#include "objc-private/runtime.h"
 #include <gthr.h>
 
 #include <stdlib.h>
-- 
GitLab