+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
<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>
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
#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.
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). */
#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
/* 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
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
#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 */
#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>
#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"
<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"
#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"
#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>