From 1a6213c3deb341d45d9ad004a485deea000ff476 Mon Sep 17 00:00:00 2001 From: Ziemowit Laski Date: Fri, 13 Aug 2004 02:06:37 +0000 Subject: [PATCH] NXConstStr.h: Update copyright date... 2004-08-12 Ziemowit Laski * objc/NXConstStr.h: Update copyright date; bracket with 'extern "C"' for C++ use; make include syntax consistent by using <...> instead of "..."; hoist includes above the 'extern "C"' block. * objc/Object.h: Likewise. * objc/Protocol.h: Likewise. * objc/encoding.h: Likewise. * objc/hash.h: Likewise. * objc/runtime.h: Likewise. * objc/sarray.h: Likewise. * objc/thr.h: Likewise. * objc/typedstream.h: Likewise. * objc/objc-api.h: Add 'extern "C"' block for C++ use. (objc_static_instances): For C++ case, do away with zero-sized array. (objc_method): Hoist definition to file scope. (_objc_load_callback, _objc_object_alloc, class_get_class_method, class_get_instance_method, class_create_instance, class_get_class_name, class_get_instance_size, class_get_meta_class, class_get_super_class, class_get_version, class_is_class, class_is_meta_class, class_set_version, class_get_gc_object_type, class_ivar_set_gcinvisible, get_imp): Rename 'class' parameter to '_class'. * objc/objc-list.h: Add 'extern "C"' block for C++ use. * objc/objc.h: Update copyright date. (arglist_t): Provide a union tag. From-SVN: r85927 --- libobjc/ChangeLog | 29 ++++++++++ libobjc/objc/NXConstStr.h | 12 +++- libobjc/objc/Object.h | 8 +++ libobjc/objc/Protocol.h | 13 +++-- libobjc/objc/encoding.h | 7 ++- libobjc/objc/hash.h | 6 +- libobjc/objc/objc-api.h | 111 +++++++++++++++++++------------------ libobjc/objc/objc-list.h | 2 - libobjc/objc/objc.h | 4 +- libobjc/objc/runtime.h | 28 ++++------ libobjc/objc/sarray.h | 24 +++----- libobjc/objc/thr.h | 5 +- libobjc/objc/typedstream.h | 9 ++- 13 files changed, 147 insertions(+), 111 deletions(-) diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog index b4699d19591..9d83ac568c6 100644 --- a/libobjc/ChangeLog +++ b/libobjc/ChangeLog @@ -1,3 +1,32 @@ +2004-08-12 Ziemowit Laski + + * objc/NXConstStr.h: Update copyright date; bracket with + 'extern "C"' for C++ use; make include syntax consistent + by using <...> instead of "..."; hoist includes + above the 'extern "C"' block. + * objc/Object.h: Likewise. + * objc/Protocol.h: Likewise. + * objc/encoding.h: Likewise. + * objc/hash.h: Likewise. + * objc/runtime.h: Likewise. + * objc/sarray.h: Likewise. + * objc/thr.h: Likewise. + * objc/typedstream.h: Likewise. + * objc/objc-api.h: Add 'extern "C"' block for C++ use. + (objc_static_instances): For C++ case, do away with + zero-sized array. + (objc_method): Hoist definition to file scope. + (_objc_load_callback, _objc_object_alloc, class_get_class_method, + class_get_instance_method, class_create_instance, + class_get_class_name, class_get_instance_size, + class_get_meta_class, class_get_super_class, class_get_version, + class_is_class, class_is_meta_class, class_set_version, + class_get_gc_object_type, class_ivar_set_gcinvisible, + get_imp): Rename 'class' parameter to '_class'. + * objc/objc-list.h: Add 'extern "C"' block for C++ use. + * objc/objc.h: Update copyright date. + (arglist_t): Provide a union tag. + 2004-07-22 Andrew Pinski * thr.c (__objc_thread_detach_function): Do not mark as volatile diff --git a/libobjc/objc/NXConstStr.h b/libobjc/objc/NXConstStr.h index f87c05e895b..b89720ef5eb 100644 --- a/libobjc/objc/NXConstStr.h +++ b/libobjc/objc/NXConstStr.h @@ -1,5 +1,5 @@ /* Interface for the NXConstantString class for Objective-C. - Copyright (C) 1995 Free Software Foundation, Inc. + Copyright (C) 1995, 2004 Free Software Foundation, Inc. Contributed by Pieter J. Schoenmakers This file is part of GCC. @@ -28,7 +28,11 @@ Boston, MA 02111-1307, USA. */ #ifndef __nxconstantstring_INCLUDE_GNU #define __nxconstantstring_INCLUDE_GNU -#include "objc/Object.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif @interface NXConstantString: Object { @@ -41,4 +45,8 @@ Boston, MA 02111-1307, USA. */ @end +#ifdef __cplusplus +} +#endif + #endif diff --git a/libobjc/objc/Object.h b/libobjc/objc/Object.h index ea3e7d77577..f4e56c5e7d5 100644 --- a/libobjc/objc/Object.h +++ b/libobjc/objc/Object.h @@ -27,6 +27,10 @@ Boston, MA 02111-1307, USA. */ #ifndef __object_INCLUDE_GNU #define __object_INCLUDE_GNU +#ifdef __cplusplus +extern "C" { +#endif + #include #include @@ -121,4 +125,8 @@ Boston, MA 02111-1307, USA. */ @end +#ifdef __cplusplus +} +#endif + #endif diff --git a/libobjc/objc/Protocol.h b/libobjc/objc/Protocol.h index b39edf84a85..56af9068298 100644 --- a/libobjc/objc/Protocol.h +++ b/libobjc/objc/Protocol.h @@ -1,5 +1,5 @@ /* Declare the class Protocol for Objective C programs. - Copyright (C) 1993 Free Software Foundation, Inc. + Copyright (C) 1993, 2004 Free Software Foundation, Inc. This file is part of GCC. @@ -27,7 +27,11 @@ Boston, MA 02111-1307, USA. */ #ifndef __Protocol_INCLUDE_GNU #define __Protocol_INCLUDE_GNU -#include "objc/Object.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif @interface Protocol : Object { @@ -52,7 +56,8 @@ Boston, MA 02111-1307, USA. */ @end - - +#ifdef __cplusplus +} +#endif #endif /* not __Protocol_INCLUDE_GNU */ diff --git a/libobjc/objc/encoding.h b/libobjc/objc/encoding.h index b6287fc77b8..42ebc1a2d31 100644 --- a/libobjc/objc/encoding.h +++ b/libobjc/objc/encoding.h @@ -1,5 +1,5 @@ /* Encoding of types for Objective C. - Copyright (C) 1993, 1997, 2002 Free Software Foundation, Inc. + Copyright (C) 1993, 1997, 2002, 2004 Free Software Foundation, Inc. Author: Kresten Krab Thorup @@ -29,13 +29,14 @@ Boston, MA 02111-1307, USA. */ #ifndef __encoding_INCLUDE_GNU #define __encoding_INCLUDE_GNU -#include -#include "objc/objc-api.h" +#include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ +#include + #define _C_CONST 'r' #define _C_IN 'n' #define _C_INOUT 'N' diff --git a/libobjc/objc/hash.h b/libobjc/objc/hash.h index 47715af26b0..91a5eba5781 100644 --- a/libobjc/objc/hash.h +++ b/libobjc/objc/hash.h @@ -1,5 +1,5 @@ /* Hash tables for Objective C method dispatch. - Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1993, 1995, 1996, 2004 Free Software Foundation, Inc. This file is part of GCC. @@ -28,14 +28,14 @@ Boston, MA 02111-1307, USA. */ #ifndef __hash_INCLUDE_GNU #define __hash_INCLUDE_GNU -#include -#include #include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ +#include +#include /* * This data structure is used to hold items diff --git a/libobjc/objc/objc-api.h b/libobjc/objc/objc-api.h index 03bbe666c66..de10249f4d0 100644 --- a/libobjc/objc/objc-api.h +++ b/libobjc/objc/objc-api.h @@ -27,17 +27,17 @@ Boston, MA 02111-1307, USA. */ #ifndef __objc_api_INCLUDE_GNU #define __objc_api_INCLUDE_GNU -#include "objc/objc.h" -#include "objc/hash.h" -#include "objc/thr.h" -#include "objc/objc-decls.h" -#include -#include +#include +#include +#include +#include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ +#include +#include /* For functions which return Method_t */ #define METHOD_NULL (Method_t)0 @@ -152,7 +152,11 @@ extern BOOL objc_trace; struct objc_static_instances { char *class_name; +#ifdef __cplusplus + id instances[1]; +#else id instances[0]; +#endif }; /* @@ -241,28 +245,28 @@ typedef struct objc_ivar_list { ** and categories can break them across modules. To handle this problem is a ** singly linked list of methods. */ -typedef struct objc_method Method; -typedef Method* Method_t; +typedef struct objc_method { + SEL method_name; /* This variable is the method's + name. It is a char*. + The unique integer passed to + objc_msg_send is a char* too. + It is compared against + method_name using strcmp. */ + const char* method_types; /* Description of the method's + parameter list. Useful for + debuggers. */ + IMP method_imp; /* Address of the method in the + executable. */ +} Method, *Method_t; + typedef struct objc_method_list { - struct objc_method_list* method_next; /* This variable is used to link - a method list to another. It - is a singly linked list. */ - int method_count; /* Number of methods defined in - this structure. */ - struct objc_method { - SEL method_name; /* This variable is the method's - name. It is a char*. - The unique integer passed to - objc_msg_send is a char* too. - It is compared against - method_name using strcmp. */ - const char* method_types; /* Description of the method's - parameter list. Useful for - debuggers. */ - IMP method_imp; /* Address of the method in the - executable. */ - } method_list[1]; /* Variable length - structure. */ + struct objc_method_list* method_next; /* This variable is used to link + a method list to another. It + is a singly linked list. */ + int method_count; /* Number of methods defined in + this structure. */ + Method method_list[1]; /* Variable length + structure. */ } MethodList, *MethodList_t; struct objc_protocol_list { @@ -375,12 +379,12 @@ objc_EXPORT Class (*_objc_lookup_class)(const char *name); ** dynamic loader determine the classes that have been loaded when ** an object file is dynamically linked in. */ -objc_EXPORT void (*_objc_load_callback)(Class class, Category* category); +objc_EXPORT void (*_objc_load_callback)(Class _class, Category* category); /* ** Hook functions for allocating, copying and disposing of instances */ -objc_EXPORT id (*_objc_object_alloc)(Class class); +objc_EXPORT id (*_objc_object_alloc)(Class _class); objc_EXPORT id (*_objc_object_copy)(id object); objc_EXPORT id (*_objc_object_dispose)(id object); @@ -432,9 +436,9 @@ objc_EXPORT void (*_objc_free)(void *); */ objc_EXPORT IMP (*__objc_msg_forward)(SEL); -Method_t class_get_class_method(MetaClass class, SEL aSel); +Method_t class_get_class_method(MetaClass _class, SEL aSel); -Method_t class_get_instance_method(Class class, SEL aSel); +Method_t class_get_instance_method(Class _class, SEL aSel); Class class_pose_as(Class impostor, Class superclass); @@ -463,66 +467,66 @@ SEL sel_register_typed_name(const char *name, const char*type); BOOL sel_is_mapped (SEL aSel); -extern id class_create_instance(Class class); +extern id class_create_instance(Class _class); static inline const char * -class_get_class_name(Class class) +class_get_class_name(Class _class) { - return CLS_ISCLASS(class)?class->name:((class==Nil)?"Nil":0); + return CLS_ISCLASS(_class)?_class->name:((_class==Nil)?"Nil":0); } static inline long -class_get_instance_size(Class class) +class_get_instance_size(Class _class) { - return CLS_ISCLASS(class)?class->instance_size:0; + return CLS_ISCLASS(_class)?_class->instance_size:0; } static inline MetaClass -class_get_meta_class(Class class) +class_get_meta_class(Class _class) { - return CLS_ISCLASS(class)?class->class_pointer:Nil; + return CLS_ISCLASS(_class)?_class->class_pointer:Nil; } static inline Class -class_get_super_class(Class class) +class_get_super_class(Class _class) { - return CLS_ISCLASS(class)?class->super_class:Nil; + return CLS_ISCLASS(_class)?_class->super_class:Nil; } static inline int -class_get_version(Class class) +class_get_version(Class _class) { - return CLS_ISCLASS(class)?class->version:-1; + return CLS_ISCLASS(_class)?_class->version:-1; } static inline BOOL -class_is_class(Class class) +class_is_class(Class _class) { - return CLS_ISCLASS(class); + return CLS_ISCLASS(_class); } static inline BOOL -class_is_meta_class(Class class) +class_is_meta_class(Class _class) { - return CLS_ISMETA(class); + return CLS_ISMETA(_class); } static inline void -class_set_version(Class class, long version) +class_set_version(Class _class, long version) { - if (CLS_ISCLASS(class)) - class->version = version; + if (CLS_ISCLASS(_class)) + _class->version = version; } static inline void * -class_get_gc_object_type (Class class) +class_get_gc_object_type (Class _class) { - return CLS_ISCLASS(class) ? class->gc_object_type : NULL; + return CLS_ISCLASS(_class) ? _class->gc_object_type : NULL; } /* Mark the instance variable as innaccessible to the garbage collector */ -extern void class_ivar_set_gcinvisible (Class class, +extern void class_ivar_set_gcinvisible (Class _class, const char* ivarname, BOOL gcInvisible); @@ -532,7 +536,7 @@ method_get_imp(Method_t method) return (method!=METHOD_NULL)?method->method_imp:(IMP)0; } -IMP get_imp (Class class, SEL sel); +IMP get_imp (Class _class, SEL sel); /* Redefine on NeXTSTEP so as not to conflict with system function */ #ifdef __NeXT__ @@ -615,7 +619,6 @@ objc_get_uninstalled_dtable(void); } #endif /* __cplusplus */ - #endif /* not __objc_api_INCLUDE_GNU */ diff --git a/libobjc/objc/objc-list.h b/libobjc/objc/objc-list.h index 866095dabd4..19f0b85a767 100644 --- a/libobjc/objc/objc-list.h +++ b/libobjc/objc/objc-list.h @@ -32,7 +32,6 @@ Boston, MA 02111-1307, USA. */ extern "C" { #endif /* __cplusplus */ - struct objc_list { void *head; struct objc_list *tail; @@ -154,5 +153,4 @@ list_free(struct objc_list* list) } #endif /* __cplusplus */ - #endif /* not __GNU_OBJC_LIST_H */ diff --git a/libobjc/objc/objc.h b/libobjc/objc/objc.h index 3b57900d0ac..da20d84bf40 100644 --- a/libobjc/objc/objc.h +++ b/libobjc/objc/objc.h @@ -1,5 +1,5 @@ /* Basic data types for Objective C. - Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1993, 1995, 1996, 2004 Free Software Foundation, Inc. This file is part of GCC. @@ -150,7 +150,7 @@ typedef struct objc_protocol { typedef void* retval_t; /* return value */ typedef void(*apply_t)(void); /* function pointer */ -typedef union { +typedef union arglist { char *arg_ptr; char arg_regs[sizeof (char*)]; } *arglist_t; /* argument frame */ diff --git a/libobjc/objc/runtime.h b/libobjc/objc/runtime.h index d4179f2d3da..91e16a2c5e2 100644 --- a/libobjc/objc/runtime.h +++ b/libobjc/objc/runtime.h @@ -26,26 +26,25 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __objc_runtime_INCLUDE_GNU #define __objc_runtime_INCLUDE_GNU -#include /* for varargs and va_list's */ - -#include -#include +#include /* core data types */ +#include /* runtime api functions */ -#include /* so noone else will get system versions */ -#include "assert.h" - -#include "objc/objc.h" /* core data types */ -#include "objc/objc-api.h" /* runtime api functions */ +#include /* thread and mutex support */ -#include "objc/thr.h" /* thread and mutex support */ - -#include "objc/hash.h" /* hash structures */ -#include "objc/objc-list.h" /* linear lists */ +#include /* hash structures */ +#include /* linear lists */ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ +#include /* for varargs and va_list's */ + +#include +#include + +#include /* so noone else will get system versions */ +#include extern void __objc_add_class_to_hash(Class); /* (objc-class.c) */ extern void __objc_init_selector_tables(void); /* (objc-sel.c) */ @@ -94,7 +93,4 @@ extern void __objc_generate_gc_type_description (Class); } #endif /* __cplusplus */ - #endif /* not __objc_runtime_INCLUDE_GNU */ - - diff --git a/libobjc/objc/sarray.h b/libobjc/objc/sarray.h index 5956a43071e..59ab6ea1fa2 100644 --- a/libobjc/objc/sarray.h +++ b/libobjc/objc/sarray.h @@ -1,5 +1,5 @@ /* Sparse Arrays for Objective C dispatch tables - Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1993, 1995, 1996, 2004 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup. This file is part of GCC. @@ -28,6 +28,12 @@ Boston, MA 02111-1307, USA. */ #ifndef __sarray_INCLUDE_GNU #define __sarray_INCLUDE_GNU +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + #define OBJC_SPARSE2 /* 2-level sparse array */ /* #define OBJC_SPARSE3 */ /* 3-level sparse array */ @@ -41,22 +47,11 @@ extern const char* __objc_sparse3_id; #include -#include "objc/thr.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - extern int nbuckets; /* for stats */ extern int nindices; extern int narrays; extern int idxsize; -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - #include /* An unsigned integer of same size as a pointer */ @@ -151,10 +146,6 @@ struct sarray { size_t capacity; }; -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - struct sarray* sarray_new(int, void* default_element); void sarray_free(struct sarray*); struct sarray* sarray_lazy_copy(struct sarray*); @@ -251,5 +242,4 @@ static inline void* sarray_get_safe(struct sarray* array, sidx indx) } #endif /* __cplusplus */ - #endif /* __sarray_INCLUDE_GNU */ diff --git a/libobjc/objc/thr.h b/libobjc/objc/thr.h index b4472fefd82..0b77527e1ef 100644 --- a/libobjc/objc/thr.h +++ b/libobjc/objc/thr.h @@ -1,5 +1,5 @@ /* Thread and mutex controls for Objective C. - Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2002, 2004 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. @@ -38,7 +38,7 @@ Boston, MA 02111-1307, USA. */ #ifndef __thread_INCLUDE_GNU #define __thread_INCLUDE_GNU -#include "objc/objc.h" +#include #ifdef __cplusplus extern "C" { @@ -150,5 +150,4 @@ void * __objc_thread_get_data (void); } #endif /* __cplusplus */ - #endif /* not __thread_INCLUDE_GNU */ diff --git a/libobjc/objc/typedstream.h b/libobjc/objc/typedstream.h index 8e9e2e39f2e..826ebe54717 100644 --- a/libobjc/objc/typedstream.h +++ b/libobjc/objc/typedstream.h @@ -1,5 +1,5 @@ /* GNU Objective-C Typed Streams interface. - Copyright (C) 1993, 1995 Free Software Foundation, Inc. + Copyright (C) 1993, 1995, 2004 Free Software Foundation, Inc. This file is part of GCC. @@ -27,14 +27,14 @@ Boston, MA 02111-1307, USA. */ #ifndef __typedstream_INCLUDE_GNU #define __typedstream_INCLUDE_GNU -#include "objc/objc.h" -#include "objc/hash.h" -#include +#include +#include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ +#include typedef int (*objc_typed_read_func)(void*, char*, int); typedef int (*objc_typed_write_func)(void*, const char*, int); @@ -138,5 +138,4 @@ void objc_flush_typed_stream (TypedStream* stream); } #endif /* __cplusplus */ - #endif /* not __typedstream_INCLUDE_GNU */ -- 2.30.2