Commit Graph

405 Commits

Author SHA1 Message Date
Nicola Pero
600cbba24e In libobjc/: 2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-21  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-private/module-abi-8.h (struct objc_symtab): Declare 'refs'
	to be 'struct objc_selector *' and not 'SEL'.
	* init.c (__objc_exec_class): Call
	__objc_register_selectors_from_module instead of iterating over
	each selector and calling __sel_register_typed_name for each.
	* objc-private/selector.h: Declare
	__objc_register_selectors_from_module instead of
	__sel_register_typed_name.
	* selector.c (__objc_register_selectors_from_module): New.
	(__sel_register_typed_name): Made static.

From-SVN: r168113
2010-12-21 12:49:26 +00:00
Nicola Pero
bebf8772de In libobjc/: 2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-21  Nicola Pero  <nicola.pero@meta-innovation.com>

	* linking.m: Do not include objc/NXConstStr.h.

From-SVN: r168112
2010-12-21 11:58:48 +00:00
Nicola Pero
9c68c0e598 In libobjc/: 2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-21  Nicola Pero  <nicola.pero@meta-innovation.com>
	
	* objc-private/runtime.h (DEBUG_PRINTF): Moved from here ...
	* objc-private/common.h (DEBUG_PRINTF): To here.
	* hash.c: Do not include objc-private/runtime.h and objc/thr.h.

From-SVN: r168111
2010-12-21 11:50:14 +00:00
Nicola Pero
57d75eebe2 In libobjc/: 2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-21  Nicola Pero  <nicola.pero@meta-innovation.com>

	* hash.c: Tidied up comments and indentation.  No code changes.

From-SVN: r168110
2010-12-21 11:24:27 +00:00
Nicola Pero
ef7ed5df72 In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR libobjc/47012
	* accessors.m (objc_getProperty): If not atomic, do not
	retain/autorelease the returned value. (Problem reported by

From-SVN: r168070
2010-12-19 19:10:26 +00:00
Nicola Pero
f94e723ba7 In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-private/runtime.h (__objc_selector_max_index,
	__objc_init_selector_tables, __objc_register_selectors_from_class,
	__objc_register_selectors_from_list,
	__objc_register_selectors_from_description_list): Moved to ...
	* objc-private/selector.h: ... here.

From-SVN: r168067
2010-12-19 18:13:28 +00:00
Nicola Pero
d9df33650f In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-private/runtime.h (__objc_class_links_resolved): Removed.
	(__objc_print_dtable_stats): Removed.
	(__sel_register_typed_name): Removed.
	* sendmsg.c (__objc_print_dtable_stats): Use 'void' as argument.

From-SVN: r168066
2010-12-19 18:01:47 +00:00
Nicola Pero
41720477ab In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* init.c (__objc_exec_class): Call __objc_resolve_class_links (),
	if appropriate, after loading the module.

From-SVN: r168065
2010-12-19 17:30:30 +00:00
Nicola Pero
5f38ced19a In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* sendmsg.c (method_setImplementation): Do not declare.

From-SVN: r168064
2010-12-19 16:20:30 +00:00
Nicola Pero
ecfc27058c In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc/message.h: Updated comments.
	* objc/runtime.h: Updated comments.

From-SVN: r168062
2010-12-19 16:04:55 +00:00
Nicola Pero
6e45b376c6 In gcc/testsuite/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/testsuite/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc.dg/gnu-api-2-objc.m: Fixed test to test objc_lookUpClass,
	not objc_lookupClass.
	* obj-c++.dg/gnu-api-2-objc.mm: Same change.
	
In libobjc/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* class.c (objc_lookupClass): Renamed to objc_lookUpClass.
	* protocols.c: Updated all calls to objc_lookupClass to call
	objc_lookUpClass instead.
	* sendmsg.c (objc_lookupClass): Do not declare.
	(get_imp): Update call to objc_lookupClass to call
	objc_lookUpClass instead.
	* objc/runtime.h (objc_lookupClass): Renamed to objc_lookUpClass.

From-SVN: r168059
2010-12-19 15:13:54 +00:00
Nicola Pero
fea782052d In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc/runtime.h (class_ivar_set_gcinvisible): Declare.
	* sendmsg.c (_CLS_IN_CONSTRUCTION, CLS_IS_IN_CONSTRUCTION): Do not
	define.  Updated comments.

From-SVN: r168058
2010-12-19 14:56:14 +00:00
Nicola Pero
2899534b2c In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc/encoding.h: Updated comments.
	* objc/runtime.h: Updated comments.
	(objc_setGetUnknownClassHandler): Mark with objc_EXPORT.
	(objc_sizeof_type): Same.
	(objc_alignof_type): Same.
	(objc_aligned_size): Same.
	(objc_promoted_size): Same.
	(objc_skip_type_qualifiers): Same.
	(objc_skip_typespec): Same.
	(objc_skip_offset): Same.
	(objc_skip_argspec): Same.
	(objc_get_type_qualifiers): Same.
	(objc_layout_structure): Same.
	(objc_layout_structure_next_member): Same.
	(objc_layout_finish_structure): Same.
	(objc_layout_structure_get_info): Same.

From-SVN: r168051
2010-12-19 13:40:16 +00:00
Nicola Pero
120d5f8ea4 In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* init.c: Updated comments.
	* objc/objc-api.h: Updated comments.
	* objc/runtime.h (_objc_load_callback): Declare.

From-SVN: r168044
2010-12-19 02:12:42 +00:00
Nicola Pero
c34fc9884e In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc/Object.h: Include deprecated/typedstream.h and
	deprecated/hash.h instead of typedstream.h.  Updated comments.

From-SVN: r168043
2010-12-19 01:43:02 +00:00
Nicola Pero
5ec582f938 In gcc/testsuite/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/testsuite/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc.dg/gnu-api-2-resolve-method.m: Include objc/message.h.
	* obj-c++.dg/gnu-api-2-resolve-method.m: Include objc/message.h.

In libobjc/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* Makefile.in (OBJC_DEPRECATED_H): Added objc_msg_sendv.h.
	* objc/deprecated/objc_msg_sendv.h: New.
	* objc/message.h: Do not define retval_t, apply_t, arglist,
	arglist_t, objc_msg_sendv, now in
	objc/deprecated/objc_msg_sendv.h.
	* objc/objc.h: Do not include message.h; include
	objc/deprecated/objc_msg_sendv.h instead.  Tidied up comments.
	* sendmsg.c: Include objc/message.h.
	* thr.c: Include objc/message.h.

From-SVN: r168042
2010-12-19 01:29:09 +00:00
Nicola Pero
805a07f15e In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc/objc-exception.h: Include objc-decls.h.  Mark all
	functions with objc_EXPORT.
	* objc/objc-sync.h: Same change.

From-SVN: r168041
2010-12-19 01:01:48 +00:00
Nicola Pero
c06a866409 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
2010-12-19 00:54:27 +00:00
Nicola Pero
1af5b8f553 In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
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.
	* selector.c: Include objc-private/selector.h.

From-SVN: r168039
2010-12-19 00:28:52 +00:00
Nicola Pero
575584a982 In libobjc/: 2010-12-18 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	* class.c: Tidied up comments and indentation.  No code changes.
	* error.c: Same.
	* exception.c: Same.
	* init.c: Same.
	* ivars.c: Same.
	* memory.c: Same.
	* objc-foreach.c: Same.
	* objc-sync.c: Same.
	* objects.c: Same.
	* protocols.c: Same.
	* sarray.c: Same.
	* thr.c: Same.

From-SVN: r168022
2010-12-18 12:22:59 +00:00
Nicola Pero
fed2b10179 init.c: Include objc/runtime.h and objc-private/module-abi-8.h instead of objc/objc-api.h.
2010-12-17  Nicola Pero  <nicola.pero@meta-innovation.com>

	* init.c: Include objc/runtime.h and objc-private/module-abi-8.h
	instead of objc/objc-api.h.
	(init_check_module_version): Take a 'struct objc_module *'
	argument instead of 'Module_t'.  Use 'struct objc_module *'
	instead of 'Module_t'.
	(__objc_created_classes_tree): Take a 'struct objc_module *'
	argument instead of 'Module_t'; use 'struct objc_symtab *' instead
	of 'Symtab_t'.
	(__objc_call_callback): Take a 'struct objc_module *' argument
	instead of 'Module_t'; use 'struct objc_symtab *' instead of
	'Symtab_t' and 'struct objc_category *' instead of 'Category_t'.
	(_objc_load_callback): Take a 'struct objc_category *' argument
	instead of 'Category *'.
	(class_superclass_of_class): Use objc_getClass() instead of
	objc_lookup_class().
	(create_tree_of_subclasses_inherited_from): Same change (also, use
	an explicit 'if' instead of '?').
	(objc_init_statics): Same change.
	(objc_send_load): Same change.
	(__objc_init_protocol): same change.
	(__objc_send_message_in_list): Take a 'struct objc_method_list *'
	argument instead of 'MethodList_t'.  Use 'struct objc_method *'
	instead of 'Method_t'.
	(__objc_send_load): Use 'struct objc_method_list *' instead of
	'MethodList_t'.  Use sel_registerName() instead of
	sel_register_name().
	(__objc_exec_class): Take a 'struct objc_module *' argument
	instead of 'Module_t'.  Use 'struct objc_symtab *' instead of
	'Symtab_t'.  Use objc_getClass() instead of objc_lookup_class().
	Use 'struct objc_category *' instead of 'Category_t'.

From-SVN: r168000
2010-12-17 22:12:34 +00:00
Nicola Pero
114dae4330 In libobjc/: 2010-12-16 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-16  Nicola Pero  <nicola.pero@meta-innovation.com>

	* sendmsg.c: Include objc/runtime.h instead of objc/objc-api.h.
	Include objc-private/module-abi-8.h and objc-private/selector.h
	instead of objc/encoding.h.
	(objc_msg_lookup_super): Use super->super_class instead of
	super->class.
	(method_get_first_argument, method_get_next_argument): Declare
	locally.
	(class_get_instance_method): Declare before using.
	(objc_msg_sendv): Use 'struct objc_method' instead of 'Method'.
	(__objc_init_dispatch_tables, __objc_send_initialize): Use
	sel_registerName() instead of sel_register_name().
	(__objc_forward): Use sel_getName() instead of sel_get_name().
	(objc_get_uninstalled_dtable): Use 'void' as argument.
	* objc-private/selector.h: New.

From-SVN: r167961
2010-12-16 22:52:48 +00:00
Nicola Pero
53f672caaa In libobjc/: 2010-12-15 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-15  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc/message.h (objc_super): When using the modern API, do not
	define Super and Super_t, and always use 'super_class' for the
	super class field.	
	(objc_msg_lookup_super): Updated prototype to use 'struct
	objc_super *' instead of 'Super_t'.
	* sendmsg.c (objc_msg_lookup_super): Updated prototype to use
	'struct objc_super *' instead of 'Super_t'.

From-SVN: r167869
2010-12-15 19:47:18 +00:00
Nicola Pero
db1792ee33 In libobjc/: 2010-12-15 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-15  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc/message.h: Update comments, reindented code and moved
	deprecated types and functions at the end of the file.  No code
	changes.

From-SVN: r167864
2010-12-15 17:43:01 +00:00
Nicola Pero
3db1a28cce In libobjc/: 2010-12-15 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-15  Nicola Pero  <nicola.pero@meta-innovation.com>

	* ivars.c (class_addIvar): Use the 'size' argument instead of
	trying to calculate it using objc_sizeof_type().
	* objc/runtime.h (class_addIvar): Updated comments.

From-SVN: r167837
2010-12-15 01:35:20 +00:00
Nicola Pero
b427203d21 sendmsg.c: Reindented some code and tidied up comments.
2010-12-15  Nicola Pero  <nicola.pero@meta-innovation.com>

	* sendmsg.c: Reindented some code and tidied up comments.  No
	actual code changes.

From-SVN: r167835
2010-12-15 00:47:16 +00:00
Nicola Pero
002d467548 Object.h: Moved all the methods, with the exception of -class and -isEqual:, into ...
2010-12-14  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc/Object.h: Moved all the methods, with the exception of
	-class and -isEqual:, into ...
	* objc/deprecated/Object.h: here.
	* Object.m: Moved all the methods, with the exception of -class
	and -isEqual: into the 'Deprecated' category.

From-SVN: r167825
2010-12-14 23:36:36 +00:00
Nicola Pero
9ecfa8de88 objects.c (object_copy): Do not #undef as we are no longer including objc/objc-api.h.
2010-12-14  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objects.c (object_copy): Do not #undef as we are no longer
        including objc/objc-api.h.
        * selector.c: Include objc/runtime.h and
        objc-private/module-abi-8.h.  Do not include objc/objc-api.h and
        objc/encoding.h.  Updated
        (__objc_register_selectors_from_class): Use struct
        objc_method_list * instead of MethodList_t.
        (__objc_register_selectors_from_list): Use Method instead of
        Method_t.
        (struct objc_method_description_list): Do not define here.
        (__objc_register_instance_methods_to_class): Use struct
        objc_method_list * instead of MethodList_t and Method instead of
        Method_t.

From-SVN: r167818
2010-12-14 21:57:31 +00:00
Nicola Pero
48d69c57af Indented two lines that I missed in last commit. No code changes
From-SVN: r167817
2010-12-14 20:56:30 +00:00
Nicola Pero
d4645ada25 selector.c: Reindented some code and tidied up comments.
2010-12-14  Nicola Pero  <nicola.pero@meta-innovation.com>

        * selector.c: Reindented some code and tidied up comments.  No
        actual code changes.

From-SVN: r167815
2010-12-14 20:52:10 +00:00
Iain Sandoe
f436d2ff95 encoding.c (_darwin_rs6000_special_round_type_align): New.
libobjc:

	* encoding.c (_darwin_rs6000_special_round_type_align): New.
	(darwin_rs6000_special_round_type_align): Adjust to use new routine.

testsuite:

	* objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c: Adjust XFAILs.

From-SVN: r167741
2010-12-13 08:36:06 +00:00
Nicola Pero
e97cfd9707 In libobjc/: 2010-12-11 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-11  Nicola Pero  <nicola.pero@meta-innovation.com>

        * sendmsg.c (selector_resolveClassMethod): New.
        (selector_resolveInstanceMethod): New.
        (__objc_resolve_class_method): New.
        (__objc_resolve_instance_method): New.
        (get_imp): Call __objc_resolve_class_method or
        __objc_resolve_instance_method at the appropriate time.
        (objc_msg_lookup): Same.
        (class_getClassMethod): Same.
        (class_getInstanceMethod): Same.
        (__objc_init_dispatch_tables): Initialize
        selector_resolveClassMethod and selector_resolveInstanceMethod.
        * objc/runtime.h: Updated documentation of class_getClassMethod,
        class_getInstanceMethod and class_getMethodImplementation.

In gcc/testsuite/:
2010-12-11  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc.dg/gnu-api-2-resolve-method.m: New.
        * obj-c++.dg/gnu-api-2-resolve-method.mm: New.

From-SVN: r167712
2010-12-11 19:43:21 +00:00
Nicola Pero
375d1239a4 module-abi-8.h (struct objc_symtab): Updated description of sel_ref_cnt and refs.
2010-12-11  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-private/module-abi-8.h (struct objc_symtab): Updated
	description of sel_ref_cnt and refs.
	* objc/deprecated/struct_objc_symtab.h (objc_symtab): Same change.

From-SVN: r167710
2010-12-11 14:03:38 +00:00
Dave Korn
7de6ba7a0b re PR target/40125 (libgcc_s DLL installed in wrong directory in cross toolchain)
config/ChangeLog:

2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/40125
	PR lto/46695
	* lthostflags.m4: New file.
	(ACX_LT_HOST_FLAGS): Define.

libgfortran/ChangeLog:

2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/40125
	PR lto/46695
	* configure.ac: Invoke ACX_LT_HOST_FLAGS.
	* Makefile.am (LTLDFLAGS): Use lt_host_flags.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

libgomp/ChangeLog:

2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/40125
	PR lto/46695
	* configure.ac: Invoke ACX_LT_HOST_FLAGS.
	* Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libjava/ChangeLog:

2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/40125
	PR lto/46695
	* configure.ac: Invoke ACX_LT_HOST_FLAGS.
	* configure.host (libgcj_sublib_ltflags): Use lt_host_flags.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libobjc/ChangeLog:

2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/40125
	PR lto/46695
	* configure.ac (extra_ldflags_libobjc): Invoke ACX_LT_HOST_FLAGS.
	* Makefile.in (lt_host_flags): Import AC_SUBST'd value.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

libquadmath/ChangeLog:

2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/40125
	PR lto/46695
	* configure.ac: Invoke ACX_LT_HOST_FLAGS.
	* Makefile.am (libquadmath_la_LDFLAGS): Use lt_host_flags.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

libssp/ChangeLog:

2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/40125
	PR lto/46695
	* configure.ac: Invoke ACX_LT_HOST_FLAGS.
	* Makefile.am (libssp_la_LDFLAGS): Use lt_host_flags.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

libstdc++-v3/ChangeLog:

2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/40125
	PR lto/46695
	* configure.ac: Invoke ACX_LT_HOST_FLAGS.
	* configure.host (OPT_LDFLAGS): Use lt_host_flags for cygming.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* libsupc++/Makefile.in: Regenerate.
	* po/Makefile.in: Regenerate.
	* python/Makefile.in: Regenerate.
	* src/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

lto-plugin/ChangeLog:

2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/40125
	PR lto/46695
	* configure.ac: Invoke ACX_LT_HOST_FLAGS.
	* Makefile.am (liblto_plugin_la_LDFLAGS): Use lt_host_flags but
	override -bindir setting.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

From-SVN: r167480
2010-12-06 00:50:04 +00:00
Matthias Klose
196891b51b configure.ac (VERSION): Bump the version to 3:0:0.
2010-12-03  Matthias Klose  <doko@ubuntu.com> 

        * configure.ac (VERSION): Bump the version to 3:0:0.
        * configure: Regenerate.

From-SVN: r167426
2010-12-03 14:22:13 +00:00
Richard Frith-Macdonald
d81e30b8d3 In libobjc/: 2010-11-23 Richard Frith-Macdonald <rfm@gnu.org>
In libobjc/:
2010-11-23  Richard Frith-Macdonald <rfm@gnu.org>

	* sendmsg.c (get_imp): Fixed call to __objc_get_forward_imp to
	pass nil as the receiver since we don't know the receiver at this
	point.

From-SVN: r167092
2010-11-23 19:20:54 +00:00
Nicola Pero
49a35931ee ivars.c: Include stdlib.h.
2010-11-18  Nicola Pero  <nicola.pero@meta-innovation.com>

        * ivars.c: Include stdlib.h.
        * protocols.c: Same change.

From-SVN: r166895
2010-11-18 02:11:33 +00:00
Nicola Pero
d6f62adad7 Fixed my email address in 3 of my ChangeLog entries for the past couple of months
From-SVN: r166613
2010-11-11 19:01:45 +00:00
Nicola Pero
682e805aaf Makefile.in (OBJC_SOURCE_FILES): Added accessors.m.
2010-10-24  Nicola Pero  <nicola.pero@meta-innovation.com>

        * Makefile.in (OBJC_SOURCE_FILES): Added accessors.m.
        * accessors.m: New.
        * init.c: Include objc-private/accessors.h.
        (__objc_exec_class): Call __objc_accessors_init.
        * objc-private/accessors.h: New.

From-SVN: r165903
2010-10-24 17:23:19 +00:00
Nicola Pero
5b8b526e69 In gcc/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/:
2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>

        * doc/objc.texi (GNU Objective-C runtime API): New section.
        (Modern GNU Objective-C runtime API): New section.
        (Traditional GNU Objective-C runtime API): New section.
        (Executing code before main): Mention that this section is
        specific to the GNU Objective-C runtime.
        (Garbage Collection): Same.

In gcc/testsuite/:
2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>

        * obj-c++.dg/gnu-api-2-class.mm: New.
        * obj-c++.dg/gnu-api-2-ivar.mm: New.
        * obj-c++.dg/gnu-api-2-method.mm: New.
        * obj-c++.dg/gnu-api-2-objc.mm: New.
        * obj-c++.dg/gnu-api-2-object.mm: New.
        * obj-c++.dg/gnu-api-2-property.mm: New.
        * obj-c++.dg/gnu-api-2-protocol.mm: New.
        * obj-c++.dg/gnu-api-2-sel.mm: New.


In libobjc/:
2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc/message.h: Moved initial includes outside of extern "C".
        * objc/runtime.h: Add extern "C" for Objective-C++.

From-SVN: r165595
2010-10-17 19:33:19 +00:00
Nicola Pero
1501d0941a In libobjc/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>

        * init.c (objc_send_load): Do not wait for NXConstantString to be
        registered before executing +load.  There is no point if
        -fconstant-string-class=xxx is used when compiling all modules,
        as is the case for almost all users.
        * linking.m (__objc_linking): Do not try to forcefully link in
        NXConstantString.

In gcc/:
2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>

        * doc/objc.texi (What you can and what you cannot do in +load):
        Document that sending messages to constant string objects in +load
        is not guaranteed to work.

From-SVN: r165583
2010-10-17 11:01:31 +00:00
Nicola Pero
6c5c7efd6b In libobjc/: 2010-10-16 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-16  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc/runtime.h: Updated comments.
        (class_addMethod): New.
        (class_addIvar): New.
        (class_replaceMethod): New.
        (objc_allocateClassPair): New.
        (objc_registerClassPair): New.
        (objc_disposeClassPair): New.
        * class.c (objc_allocateClassPair): New.
        (objc_registerClassPair): New.
        (objc_disposeClassPair): New.
        (class_getSuperclass): Return Nil if a class is in construction.
        * init.c (__objc_exec_class): Call __objc_init_class.
        (__objc_init_class): New.
        * ivars.c (class_copyIvarList): Return NULL if class is in
        construction.  Do not lock the runtime mutex.
        (class_getInstanceVariable): Return NULL if class is in
        construction.  Do not lock the runtime mutex.
        (class_addIvar): New.
        * sendmsg.c (class_addMethod): New.
        (class_replaceMethod): New.
        * objc-private/module-abi-8.h (__CLS_SETNOTINFO): New.
        (_CLS_IN_CONSTRUCTION): New.
        (CLS_IS_IN_CONSTRUCTION): New.
        (CLS_SET_IN_CONSTRUCTION): New.
        (CLS_SET_NOT_IN_CONSTRUCTION): New.
        * objc-private/runtime.h (__objc_init_class): New.

From-SVN: r165563
2010-10-16 21:26:59 +00:00
Nicola Pero
1cde73d75d class.c (class_getSuperclass): Call __objc_resolve_class_links if the class is not resolved yet.
2010-10-16  Nicola Pero  <nicola.pero@meta-innovation.com>

        * class.c (class_getSuperclass): Call __objc_resolve_class_links
        if the class is not resolved yet.
        * ivars.c (class_getInstanceVariable): Use class_getSuperclass.

From-SVN: r165542
2010-10-16 14:03:42 +00:00
Nicola Pero
3c44c190b6 In libobjc/: 2010-10-16 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-16  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc/runtime.h (class_getIvarLayout): New.
        (class_getWeakIvarLayout): New.
        (class_setIvarLayout): New.
        (class_setWeakIvarLayout): New.
        * ivars.c (class_getIvarLayout): New.
        (class_getWeakIvarLayout): New.
        (class_setIvarLayout): New.
        (class_setWeakIvarLayout): New.

From-SVN: r165533
2010-10-16 00:04:37 +00:00
Nicola Pero
8437e063bc In libobjc/: 2010-10-15 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-15  Nicola Pero  <nicola.pero@meta-innovation.com>
        
        * objc/runtime.h (class_copyPropertyList): New.
        (class_getProperty): New.
        (property_getAttributes): New.
        (property_getName): New.
        * ivars.c (class_copyPropertyList): New.
        (class_getProperty): New.
        (property_getAttributes): New.
        (property_getName): New.

From-SVN: r165531
2010-10-15 23:42:02 +00:00
Nicola Pero
51194e8eb5 In libobjc/: 2010-10-15 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-15  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc-private/runtime.h (__objc_update_classes_with_methods): New.
        * class.c (__objc_update_classes_with_methods): New.
        (objc_getClassList): Do not lock the class lock.
        * methods.c (method_exchangeImplementations): New.
        (method_setImplementation): New.
        * objc/runtime.h (method_setImplementation): New.
        (method_exchangeImplementations): New.

From-SVN: r165525
2010-10-15 22:27:39 +00:00
Nicola Pero
ae422ccd65 In libobjc/: 2010-10-15 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-15  Nicola Pero  <nicola.pero@meta-innovation.com>

        * Protocol.m: Include objc/runtime.h and
        objc-private/module-abi-8.h instead of objc/objc-api.h.  Do not
        repeat Protocol's instance variables.
        (struct objc_method_description_list): Do not define here.
        ([-conformsTo:]): Reimplemented on top of protocol_conformsTo().
        ([descriptionForInstanceMethod:]): Use sel_isEqual() to compare
        selectors directly instead of getting names and then using strcmp.
        ([descriptionForClassMethod:]): Same change.
        ([-isEqual:]): Reimplemented on top of protocol_isEqual().
        * protocols.c (protocol_getMethodDescription): Use sel_isEqual()
        to compare selectors directly instead of getting names and then
        using strcmp.
        * objc/Protocol.h: Updated comments.

From-SVN: r165517
2010-10-15 18:24:27 +00:00
Nicola Pero
977647538d Fixed date in my last changelog entry
From-SVN: r165501
2010-10-15 10:38:01 +00:00
Nicola Pero
f7185d4791 In libobjc/: 2010-10-14 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>

        * init.c (__objc_init_protocol): New function which fixes up a
        protocol's class pointer, registers it with the runtime, register
        all protocol selectors and registers associated protocols too.
        (objc_init_statics): Detect if we are initializing protocols, and
        if so, use __objc_init_protocol instead of only fixing up the
        class pointer.
        (__objc_init_protocls): Use __objc_init_protocol.
        * objc-private/module-abi-8.h: Updated comments.
        * objc-private/runtime.h
        (__objc_register_selectors_from_description_list): New.
        * selector.c (__objc_register_selectors_from_description_list):
        New.  (struct objc_method_description_list): Declare.
        * Protocol.m ([-descriptionForInstanceMethod:]): Use sel_get_name
        when accessing the name of a method, which is now correctly a SEL.
        ([-descriptionForClassMethod:]): Same change.
        * protocols.c (protocol_getMethodDescription): Same change.
        * objc/runtime.h: Updated comments.
        (sel_registerTypedName): Fixed typo in function name.

From-SVN: r165499
2010-10-15 10:35:00 +00:00
Nicola Pero
5254c66ba0 In libobjc/: 2010-10-13 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-13  Nicola Pero  <nicola.pero@meta-innovation.com>

        PR libobjc/23214
        * init.c (objc_init_statics): Do not skip the initialization of a
        statics list if the first object has already been initialized; in
        the case of Protocols, while the first one may have been
        initialized, some others may not have been initialized yet.

In gcc/testsuite/:
2010-10-13  Nicola Pero  <nicola.pero@meta-innovation.com>

        PR libobjc/23214
        * objc.dg/pr23214.m: New.

From-SVN: r165414
2010-10-13 08:16:42 +00:00
Nicola Pero
b0453850df In libobjc/: 2010-10-13 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-13  Nicola Pero  <nicola.pero@meta-innovation.com>

        * Makefile.in (OBJC_DEPRECATED_H): Added
        objc_get_uninstalled_dtable, objc_object_alloc.h and
        struct_objc_static_instances.h.

From-SVN: r165409
2010-10-13 01:08:43 +00:00
Nicola Pero
ad49efbd54 In libobjc/: 2010-10-13 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-13  Nicola Pero  <nicola.pero@meta-innovation.com>

        * encoding.c (method_copyReturnType): New.
        (method_copyArgumentType): New.
        (method_getReturnType): New.
        (method_getArgumentType): New.
        * methods.c (method_getDescription): New.
        * objc/runtime.h (method_copyReturnType): New.
        (method_copyArgumentType): New.
        (method_getReturnType): New.
        (method_getArgumentType): New.
        (method_getDescription): New.

From-SVN: r165404
2010-10-13 00:15:43 +00:00
Nicola Pero
c994cc85bd In libobjc/: 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-12  Nicola Pero  <nicola.pero@meta-innovation.com>

        * encoding.c: Tidied up comments.
        (objc_skip_variable_name): New static inline function.
        (objc_sizeof_type): Use objc_skip_variable_name instead of copying
        the same code over and over.
        (objc_alignof_type): Same.
        (objc_aligned_size): Same.
        (objc_promoted_size): Same.
        (objc_skip_typespec): Same.
        (objc_layout_structure_next_member): Same.
        (objc_skip_offset): Skip a '-' before the digits (if any).  Fixed
        historical bug where objc_skip_offset would skip one byte even if
        there is no offset: check that the first offset digit is actually
        a digit before skipping it.
        (objc_skip_type_qualifiers): Mark as inline.
        (objc_skip_typespec): Mark as inline.

From-SVN: r165403
2010-10-12 22:57:57 +00:00
Nicola Pero
ad9eef11df Makefile.in (C_SOURCE_FILES): Added methods.c.
2010-10-12  Nicola Pero  <nicola.pero@meta-innovation.com>

        * Makefile.in (C_SOURCE_FILES): Added methods.c.
        * encoding.c (method_getNumberOfArguments): New.
        (method_get_number_of_arguments): Call
        method_getNumberOfArguments.
        * ivars.c (ivar_getName): Check for NULL variable argument.
        (ivar_getOffset): Check for NULL variable argument.
        (ivar_getTypeEncoding): Check for NULL variable argument.
        (class_copyIvarList): New.
        * methods.c: New.
        * protocols.c (class_copyProtocolList): Check for Nil class_
        argument.
        * sendmsg.c: Use 'struct objc_method *' instead of Method_t, and
        'struct objc_method_list *' instead of MethodList_t.
        (class_getMethodImplementation): New.
        (class_respondsToSelector): New.
        (class_getInstanceMethod): New.
        (class_getClassMethod): New.
        * objc/runtime.h: Updated comments.
        (class_copyIvarList): New.
        (class_getInstanceMethod): New.
        (class_getClassMethod): New.
        (class_getMethodImplementation): New.
        (class_respondsToSelector): New.
        (method_getName): New.
        (method_getImplementation): New.
        (method_getTypeEncoding): New.
        (class_copyMethodList): New.
        (method_getNumberOfArguments): New.

From-SVN: r165400
2010-10-12 22:00:01 +00:00
Nicola Pero
be05b0f599 In libobjc/: 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-12  Nicola Pero  <nicola.pero@meta-innovation.com>

        * class.c: Include objc/runtime.h and objc-private/module-abi-8.h
        instead of objc/objc-api.h.
        (objc_get_unknown_class_handler): Do not define.
        (class_isMetaClass): New.
        (class_getSuperclass): New.
        (class_getVersion): New.
        (class_setVersion): New.
        (class_getInstanceSize): New.
        * exceptions.c: Include objc/runtime.h instead of objc/objc-api.h.
        (is_kind_of_exception_matcher): Use objc_getSuperclass instead of
        objc_get_super_class.
        (get_ttype_entry): Use objc_getRequiredClass instead of
        objc_get_class.
        * ivars.c (class_getClassVariable): New.
        * objects.c: Include objc/runtime.h, objc/thr.h and
        objc-private/module-abi-8.h instead of objc/objc-api.h
        * objc/runtime.h (class_getClassVariable): New.
        (class_isMetaClass): New.
        (class_getSuperclass): New.
        (class_getVersion): New.
        (class_setVersion): New.
        (class_getInstanceSize): New.
        * objc-private/module-abi-8.h (HOST_BITS_PER_LONG): New (from
        objc/objc-api.h)
        (__CLS_INFO): Same.
        (__CLS_ISINFO): Same.
        (__CLS_SETINFO): Same.
        (CLS_ISMETA): Same.
        (CLS_ISCLASS): Same.
        (CLS_ISRESOLV): Same.
        (CLS_SETRESOLV): Same.
        (CLS_ISINITIALIZED): Same.
        (CLS_SETINITIALIZED): Same.
        (CLS_GETNUMBER): Same.
        (CLS_SETNUMBER): Same.

From-SVN: r165392
2010-10-12 18:43:54 +00:00
Nicola Pero
718a8e53dc archive.c: Do not include objc/objc.h.
2010-10-12  Nicola Pero  <nicola.pero@meta-innovation.com>

        * archive.c: Do not include objc/objc.h.
        * class.c: Do not include objc/objc.h.
        * encoding.c: Include objc/runtime.h, ctype.h and
        objc-private/module-abi-8.h instead of objc/objc-api.h and
        objc/encoding.h.
        * error.c: Do not include objc/objc.h.
        * gc.c: Include tconfig.h and objc/encoding.h only if
        OBJC_WITH_GC.
        * hash.c: Include objc/runtime.h and objc/thr.h instead of
        objc/objc-api.h.  Do not include objc/objc.h.
        * init.c: Do not include objc/objc.h.
        * ivars.c: Include objc/runtime.h, objc-private/module-abi-8.h and
        objc/thr.h instead of objc/objc-api.h.  Do not include
        objc/objc.h.
        * linking.m: Tidied comment.
        * memory.c: Include objc/runtime.h instead of objc/objc-api.h.
        Do not include objc/objc.h.
        * objects.c: Do not include objc/objc.h.
        * objc-sync.c: Include objc/runtime.h instead of objc/objc-api.h.
        * protocols.c: Do not include objc/objc.h.
        * sarray.c: Include objc/runtime.h instead of objc/objc-api.h.  Do
        not include objc/objc.h.
        * selector.c: Do not include objc/objc.h.
        * sendmsg.c: Do not include objc/objc.h.
        * thr.c: Include objc/runtime.h instead of objc/objc-api.h.
        Do not include objc/objc.h.
        * objc/objc-decls.h: Reindented code.
        * objc/runtime.h Include objc-decls.h.  Updated comments.
        (objc_malloc): New.
        (objc_atomic_malloc): New.
        (objc_calloc): New.
        (objc_realloc): New.
        (objc_free): New.
        * objc-private/runtime.h: Updated comments.

From-SVN: r165386
2010-10-12 16:17:18 +00:00
Nicola Pero
debfbfeefc In libobjc/: 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-12  Nicola Pero  <nicola.pero@meta-innovation.com>

        * Makefile.in (C_SOURCE_FILES): Added protocols.c.
        * objc-private/protocols.h: New.
        * protocols.c: New.
        * init.c: Include objc-private/protocols.h.
        (__objc_exec_class): Call __objc_protocols_init on startup.
        (__objc_init_protocols): Call __objc_protocols_add_protocol.
        * objc-private/runtime.h: Use (struct objc_method_list *) instead
        of MethodList_t, and (struct objc_method *) instead of Method_t.
        * objc/deprecated/struct_objc_class.h: Define
        __objc_STRUCT_OBJC_CLASS_defined.
        * objc-private/module-abi-8.h (struct
        objc_method_description_list): New.
        (struct objc_class): Only define if
        __objc_STRUCT_OBJC_CLASS_defined is undefined.
        * objc/runtime.h (class_getName): New.
        (objc_getProtocol): New.
        (objc_copyProtocolList): New.
        (class_addProtocol): New.
        (class_conformsToProtocol): New.
        (class_copyProtocolList): New.
        (protocol_conformsToProtocol): New.
        (protocol_isEqual): New.
        (protocol_getName): New.
        (protocol_getMethodDescription): New.
        (protocol_copyMethodDescriptionList): New.
        (protocol_getProperty): New.
        (protocol_copyPropertyList): New.
        (protocol_copyProtocolList): New.
        * class.c (class_getName): New.
        * selector.c (sel_isEqual): New.

From-SVN: r165349
2010-10-12 02:43:25 +00:00
Nicola Pero
524660d2e3 In libobjc/: 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-12  Nicola Pero  <nicola.pero@meta-innovation.com>

        * selector.c (sel_getName): Return "<null selector>" for a NULL
        argument.
        (sel_get_name): Return 0 for a NULL argument.
        * objc/runtime.h (sel_getName): Updated documentation.

        * objc-private/hash.h (class_hash_table): Unused declaration
        removed.
        (module_hash_table): Same.
        * objc/deprecated/hash.h: Same changes.

From-SVN: r165348
2010-10-12 00:27:02 +00:00
Nicola Pero
90a2689f4d In libobjc/: 2010-10-11 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-11  Nicola Pero  <nicola.pero@meta-innovation.com>

        * class.c (objc_getClassList): New.
        (objc_getRequiredClass): New.
        (objc_getMetaClass): New.
        (objc_lookupClass): New.
        (objc_getClass): New.
        (__objc_get_unknown_class_handler): New.
        (objc_setGetUnknownClassHandler): New.
        (objc_get_class): Use __objc_get_unknown_class_handler.
        (objc_lookup_class): Call objc_getClass.
        * objc/objc-api.h: Updated comment and copyright notice.
        * objc/runtime.h: Updated comments.
        (objc_getClass): New.
        (objc_lookupClass): New.
        (objc_getMetaClass): New.
        (objc_getRequiredClass): New.
        (objc_getClassList): New.
        (objc_setGetUnknownClassHandler): New.
        (objc_get_unknown_class_handler): New.
        * objc-private/runtime.h: Use __objc_private_runtime_INCLUDE_GNU
        instead of __objc_runtime_INCLUDE_GNU as include guard.
        * objc-private/error.h (_objc_abort): Mark as noreturn.

From-SVN: r165326
2010-10-11 18:17:19 +00:00
Nicola Pero
fdcbbfe70c In libobjc/: 2010-10-11 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-11  Nicola Pero  <nicola.pero@meta-innovation.com>

        * Makefile.in (C_SOURCE_FILES): Added ivars.c.
        * ivars.c: New.
        * objc/objc.h: Updated comments.
        * objc/runtime.h (object_getClass): New.
        (object_getClassName): New.
        (object_setClass): New.
        (class_getInstanceVariable): New.
        (object_getIndexedIvars): New.
        (object_getInstanceVariable): New.
        (object_setInstanceVariable): New.
        (object_getIvar): New.
        (object_setIvar): New.  
        (ivar_getName): New.
        (ivar_getOffset): New.
        (ivar_getTypeEncoding): New.
        * objc-private/module-abi-8.h (struct objc_class): Added.
        * objects.c (object_getClassName): New.
        (object_setClass): New.

From-SVN: r165269
2010-10-11 02:36:32 +00:00
Nicola Pero
bc18535a3e objc.h: Updated comments.
2010-10-11  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc/objc.h: Updated comments.
        * objc/objc-api.h: (object_copy): Added one argument; use a
        #define to maintain backwards-compatibility.  Moved
        _objc_object_alloc, _objc_object_copy, _objc_object_dispose and
        objc_get_uninstalled_dtable into
        objc/deprecated/objc_get_uninstalled_dtable.h and
        objc/deprecated/objc_object_alloc.h.  Include these files.
        * objc/deprecated/objc_get_uninstalled_dtable.h: New.
        * objc/deprecated/objc_object_alloc.h: New.
        * objc/runtime.h (set_getName): New.
        (sel_getType): New.
        (sel_getUid): New.
        (sel_registerName): New.
        (sel_registerTypedName): New.
        (sel_isEqual): New.
        (class_createInstance): New.
        (object_copy): New.
        (object_dispose): New.
        * objects.c: Do not include tconfig.h.  Include gc_typed.h if
        building the garbage collection version.
        (__objc_object_alloc): Removed.
        (__objc_object_copy): Removed.
        (__objc_object_dispose): Removed.
        (class_createInstance): New from code in class_create_instance.
        Cast second argument of GC_malloc_explicitly_typed.  Use
        objc_calloc.  Do not call _objc_object_alloc.
        (class_create_instance): Call class_createInstance.
        (object_copy): Added extraBytes argument.  Do not call
        _objc_object_copy.
        (object_dispose): Do not call _objc_object_dispose.
        * memory.c (objc_free): When using garbage collection, mark the
        argument as unused.
        * selector.c (sel_getName): New.
        (sel_get_name): Call sel_getName.
        (sel_getType): New.
        (sel_get_type): Call sel_getType.
        (sel_registerName): New.
        (sel_register_name): Call sel_registerName.
        (sel_registerTypedName): New.
        (sel_register_typed_name): Call sel_registerTypedName.
        (sel_getUid): New.
        (sel_get_uid): Call sel_getUid.

From-SVN: r165264
2010-10-10 23:28:12 +00:00
Nicola Pero
e4d508663e In libobjc/: 2010-10-10 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-10  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc/objc-api.h: Define Method, Method_t, Category and
        Category_t.  Prevent including this file at the same time as
        objc/runtime.h.  Updated comments.
        * objc/deprecated/struct_objc_method.h: Do not define Method,
        Method_t.
        * objc/deprecated/struct_objc_category.h: Do not define Category,
        Category_t.
        * objc-private/module-abi-8.h: New file containing a copy of all
        the structure definitions.  Not used yet.
        * objc/encoding.h (objc_aligned_size): Removed duplicate
        declaration.  Updated comments.
        * objc/runtime.h: Added Ivar, objc_property_t, Property, Method,
        Category, struct objc_method_description, _C_ID and similar,
        _C_CONST and similar and _F_CONST and similar.  Added
        objc_sizeof_type, objc_alignof_type, objc_aligned_size,
        objc_promoted_size, objc_skip_type_qualifier, objc_skip_typespec,
        objc_skip_offset, objc_skip_argspec, objc_get_type_qualifiers,
        struct objc_struct_layout, objc_layout_structure,
        objc_layout_structure_next_member, objc_layout_finish_structure,
        objc_layout_structure_get_info.  Prevent including this file at
        the same time as objc/objc-api.h.

From-SVN: r165256
2010-10-10 17:43:07 +00:00
Nicola Pero
2461ab4bb7 In libobjc/: 2010-10-10 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-10  Nicola Pero  <nicola.pero@meta-innovation.com>

        * Makefile.in (OBJC_DEPRECATED_H): Added struct_objc_category.h,
        struct_objc_ivar.h, struct_objc_ivar_list.h, struct_objc_method.h,
        struct_objc_method_list.h, struct_objc_module.h,
        struct_objc_protocol_list.h, struct_objc_symtab.h.
        * objc/deprecated/struct_objc_category.h: New.
        * objc/deprecated/struct_objc_ivar.h: New.
        * objc/deprecated/struct_objc_ivar_list.h: New.
        * objc/deprecated/struct_objc_method.h: New.
        * objc/deprecated/struct_objc_method_list.h: New.
        * objc/deprecated/struct_objc_module.h: New.
        * objc/deprecated/struct_objc_protocol_list.h: New.
        * objc/deprecated/struct_objc_symtab.h: New.
        * objc/deprecated/struct_objc_static_instances.h: New.
        * objc/objc-api.h: Definitions of deprecated structures moved into
        the above header fragment files in objc/deprecated/.  Include the
        files instead of definition the structures here.  Updated
        comments.
        * objc/runtime.h: Updated comments.  Do not include objc-api.h.
        (objc_set_enumeration_mutation_handler): Renamed to
        objc_setEnumerationMutationHandler.
        * objc-foreach.c (objc_set_enumeration_mutation_handler): Renamed
        to objc_setEnumerationMutationHandler.
        * objc/objc-exception.h (objc_set_exception_matcher): Renamed to
        objc_setExceptionMatcher.
        (objc_set_uncaught_exception_handler): Renamed to
        objc_setUncaughtExceptionHandler.
        * exception.c: Same changes.

From-SVN: r165249
2010-10-10 11:18:57 +00:00
Nicola Pero
e2633f25b1 In libobjc/: 2010-10-10 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-10  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc-sync.c: Include objc-private/common.h.

From-SVN: r165242
2010-10-09 22:30:20 +00:00
Nicola Pero
cf3822f181 In libobjc/: 2010-10-10 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-10  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc-foreach.c: Include objc-private/common.h.
        * objc/deprecated/METHOD_NULL.h: New file.
        * objc/objc-api.h: Include deprecated/METHOD_NULL.h instead of
        defining METHOD_NULL here.
        * Makefile.in (OBJC_DEPRECATED_H): Added METHOD_NULL.h.
        * Object.m ([+instancesRespondTo:]): Use (Method_t)0 instead of
        METHOD_NULL.
        ([-respondsTo:]): Same change.
        * objc/objc-api.h (method_get_imp): Converted it into a normal
        function so that we can hide the internals of struct objc_method.
        * sendmsg.c (method_get_imp): Implemented.

From-SVN: r165241
2010-10-09 22:22:23 +00:00
Nicola Pero
6176c2a993 In libobjc/: 2010-10-09 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-09  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc/objc-api.h (struct objc_super, Super, Super_t,
        objc_msg_lookup_super, objc_msg_sendv, objc_msg_forward,
        objc_msg_forward2): Declarations moved to objc/message.h.  Include
        message.h here.
        * objc/message.h: Added such declarations; updated comments.

From-SVN: r165236
2010-10-09 20:11:02 +00:00
Nicola Pero
f05b9d93e9 In gcc/: 2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/:
2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>

        Implemented fast enumeration for Objective-C.
        * c-parser.c (objc_could_be_foreach_context): New.
        (c_lex_one_token): Recognize RID_IN keyword in a potential
        Objective-C foreach context.
        (c_parser_declaration_or_fndef): Added parameter.  Accept
        Objective-C RID_IN keyword as terminating a declaration; in that
        case, return the declaration in the new parameter.
        (c_parser_extenral_declaration): Updated calls to
        c_parser_declaration_or_fndef.
        (c_parser_declaration_or_fndef): Same change.
        (c_parser_compound_statement_nostart): Same change.
        (c_parser_label): Same change.
        (c_parser_objc_methodprotolist): Same change.
        (c_parser_omp_for_loop): Same change.
        (c_parser_for_statement): Detect and parse Objective-C foreach
        statements.
        (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
        * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
        fast enumeration parsing code to turn off the c99 error but still
        perform checks on the loop declarations.
        * c-tree.h (check_for_loop_decls): Updated declaration.
        * doc/objc.texi: Document fast enumeration.

In gcc/c-family/:
2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>

        Implemented fast enumeration for Objective-C.
        * c-common.h (objc_finish_foreach_loop): New.
        * stub-objc.c (objc_finish_foreach_loop): New.

In gcc/objc/:
2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>

        Implemented fast enumeration for Objective-C.
        * objc-act.c (build_fast_enumeration_state_template): New.
        (TAG_ENUMERATION_MUTATION): New.
        (TAG_FAST_ENUMERATION_STATE): New.
        (synth_module_prologue): Call build_fast_enumeration_state_template() and set up
        objc_enumeration_mutation_decl.
        (objc_create_temporary_var): Allow providing a name to temporary
        variables.
        (objc_build_exc_ptr): Updated calls to
        objc_create_temporary_var().
        (next_sjlj_build_try_catch_finally): Same change.
        (objc_finish_foreach_loop): New.
        * objc-act.h: Added OCTI_FAST_ENUM_STATE_TEMP,
        OCTI_ENUM_MUTATION_DECL, objc_fast_enumeration_state_template,
        objc_enumeration_mutation_decl.

        Merge from 'apple/trunk' branch on FSF servers.

        2006-04-12 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4507230
        * objc-act.c (objc_type_valid_for_messaging): New routine to check
        for valid objc object types.
        (objc_finish_foreach_loop): Check for invalid objc objects in
        foreach header.

In gcc/testsuite/:
2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>

        Implemented fast enumeration for Objective-C.
        * objc.dg/foreach-1.m: New.
        * objc.dg/foreach-2.m: New.
        * objc.dg/foreach-3.m: New.
        * objc.dg/foreach-4.m: New.
        * objc.dg/foreach-5.m: New.
        * objc.dg/foreach-6.m: New.
        * objc.dg/foreach-7.m: New.

        Merge from 'apple/trunk' branch on FSF servers:
        2006-04-13 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4502236
        * objc.dg/objc-foreach-5.m: New.

        2006-04-12 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4507230
        * objc.dg/objc-foreach-4.m: New.

        2006-03-13  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4472881
        * objc.dg/objc-foreach-3.m: New.

        2005-03-07 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4468498
        * objc.dg/objc-foreach-2.m: New.

        2006-02-15   Fariborz Jahanian <fjahanian@apple.com>

        Radar 4294910
        * objc.dg/objc-foreach-1.m: New

In libobjc/:
2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>

        Implemented fast enumeration for Objective-C.
        * Makefile.in (C_SOURCE_FILES): Added objc-foreach.c.
        (OBJC_H): Added runtime.h
        * objc-foreach.c: New file.
        * objc/runtime.h: New file.

From-SVN: r165019
2010-10-06 10:10:14 +00:00
Kai Tietz
2de87f04d8 struct_objc_class.h: Add padding to avoid warning with -Wpadded.
2010-09-30  Kai Tietz  <kai.tietz@onevision.com>

        * objc/deprecated/struct_objc_class.h: Add padding
        to avoid warning with -Wpadded.

From-SVN: r164746
2010-09-30 11:01:19 +02:00
Nicola Pero
177b48f930 In gcc/: 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/:
2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        * doc/objc.texi (Type encoding): Added the new 'long double' (D)
        code.  Added byref, which was missing in the list of codes.
        Explain that enumeration values are encoded as the integer type
        that the compiler uses to store them.  Explain and make examples
        of how 'const' interacts with pointers, and the complication of
        the encoding of 'const char *'.
        (Legacy type encoding): New subsection, explaining that GCC emits
        incorrect type encodings for the NeXT runtime for compatibility
        reasons.
        (@@encode): New subsection, explaining @encode and particularly
        that protocol qualifiers are not recognized inside an @encode()
        expression.
        (Method signatures): New subsection, explaining how method
        signatures are encoded.

In gcc/objc/:
2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        PR objc/45763
        PR objc/25450
        PR objc/25464
        * objc-act.c: Improved comments for encoding functions.
        (encode_aggregate_within): For the GNU runtime, rewritten some
        obsfuscated code to clarify the various cases.
        (encode_aggregate): Function removed.
        (encode_array): Generate an error if asked to encode an incomplete
        array as part of generating instance variables.  Else, when
        encoding an incomplete array inside a structure, encode it as an
        array of zero size.
        (encode_pointer): For the GNU runtime, fixed encoding 'BOOL *' as
        '^c' instead of '*'.
        (encode_gnu_bitfield): Encode enumerated types exactly in the same
        type as integer types instead of using a hardcoded 'i'.  If asked
        to encode a non-integer type as a bitfield, do not abort
        compilation immediately; instead generate an error, then skip the
        type.
        (encode_type): Use a 'switch' instead of a sequence of 'if's.
        Added a 'default' clause that gets executed if the type can not be
        matched, and that encodes it as '?' (unknown) and produces a
        warning.  For the GNU runtime, encode enumerated types exactly in
        the same way as integer types instead of using a hardcoded 'i'.
        Encode long double as 'D'.  Encode 128-bit integers as 'T' or 't'.
        Encode C++ reference types as pointers.  Call encode_vector to
        encode vectors.
        (encode_vector): New function.

2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        Merge from 'apple/trunk' branch on FSF servers.  I modified the
        changes to be used only when compiling for the NeXT runtime.

        2005-10-10  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4301047

        * objc-act.c (encode_type): Remove the hack.

        2005-07-20  Ziemowit Laski  <zlaski@apple.com>

        Radar 4136935
        * objc-act.c (pointee_is_readonly): New function.
        (encode_pointer, encode_aggregate_within, encode_type):
        Attempt to emulate GCC 3.3 when generating type encodings.

In gcc/testsuite/:
2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        PR objc/25464
        * objc.dg/type-size-3.m: New test.

2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        PR objc/45763
        * objc.dg/encode-1.m: Execute the test with the GNU runtime as
        well.

2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        PR objc/25450
        * objc.dg/encode-3.m: Updated for fix of encoding of enums.
        * objc.dg/type-size-2.m: Same change.
        * obj-c++.dg/encode-5.mm: Same change.

2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        Merge from 'apple/trunk' branch on FSF servers.  The original
        Changelogs are below.

        * objc.dg/encode-6.m: Execute the test only with the GNU runtime.
        * objc.dg/encode-6-next.m: New file (from encode-6.m in the
        branch).
        * objc.dg/encode-7-next.m: New file (from encode-7.m in the
        branch).
        * objc.dg/encode-7-next-64bit.m: New file (from encode-7-64bit.m
        in the branch).
        * objc.dg/proto-qual-1.m: Test the 3.3 ABI on NeXT (from
        proto-qual-1.m in the branch) and the normal ABI on GNU.
        * objc.dg/threedotthree-abi-1.m: New file (from the branch).  Run
        the test only with the NeXT runtime.
        * obj-c++/encode-1.mm: Execute the test only with the GNU runtime.
        * obj-c++/encode-1-next.mm: New file (from encode-1.mm in the
        branch).
        * obj-c++.dg/threedotthree-abi-1.mm: New file (from the branch).
        Run the test only with the NeXT runtime.

        2006-03-30 Fariborz Jahanian <fjahanian@apple.com>

        Radar 4492973
        * objc.dg/encode-7-64bit.m: New.
        * objc.dg/encode-7.m: Skip if -m64.

        2005-10-19  Fariborz Jahanian <fjahanian@apple.com>

        Radar 4301047
        * objc.dg/proto-qual-1.m: Fix test to match 3.3 ABI
        * obj-c++.dg/threedotthree-abi-1.mm: New
        * objc.dg/threedotthree-abi-1.m: New

        2005-07-20  Ziemowit Laski  <zlaski@apple.com>

        Radar 4136935
        * obj-c++.dg/encode-1.mm: Tweak encodings to match fix.
        * objc.dg/encode-6.m: Likewise.
        * objc.dg/encode-7.m: New test case.

In libobjc/:
2010-09-26  Nicola Pero  <nicola.pero@meta-innovation.com>

        * encoding.c (objc_sizeof_type): Added support for vector type and
        for double long types.
        (objc_alignof_type): Same change.
        (objc_skip_typespec): Same change.
        * objc/encoding.h (_C_GCINVISIBLE): Use '|' for _C_GCINVISIBLE
        instead of '!' since '!' is already used for _C_VECTOR.
        * objc/objc-api.h (_C_LNG_DBL): Added.

From-SVN: r164659
2010-09-27 19:22:13 +00:00
Nicola Pero
bd74d88b40 Reverted removing 'inline' from get_imp
From-SVN: r164636
2010-09-26 19:03:27 +00:00
Nicola Pero
d284c684ff In libobjc/:
* libobjc_entry.c: File removed.

From-SVN: r164633
2010-09-26 14:45:12 +00:00
Kai Tietz
7116b6ea5c sendmsg.c (get_imp): Remove inline.
2010-09-26  Kai Tietz  <kai.tietz@onevision.com>

	* sendmsg.c (get_imp):  Remove inline.
	(objc_msg_lookup): Likewise.
	(objc_get_uninstalled_dtable): Likewise.
	* encoding.c (objc_skip_type_qualifiers): Likewise.
	(objc_skip_offset): Likewise.
	* archive.c (__objc_write_object): Likewise
	(__objc_write_class):
	(__objc_write_selector):
	(objc_read_char):
	(objc_read_unsigned_char):
	(objc_read_short):
	(objc_read_unsigned_short):
	(objc_read_int):
	(objc_read_long):
	(__objc_read_nbyte_uint):
	(objc_read_unsigned_int):
	(objc_read_unsigned_long):
	* objc/objc-decls.h (obc_EXPORT): Remove dllexport for DLL_EXPORT case.
	(objc_EXPORT): Likewise.
	* objc/message.h (objc-decls.h): Add include.
	* objc/objc-api.h: Mark API by objc_EXPORT.
	* libobjc.def (__objc_responds_to): Removed.

From-SVN: r164632
2010-09-26 16:32:45 +02:00
Nicola Pero
5d3b14bd9a In libobjc/:
* hash.c: Include objc-private/hash.h instead of objc/hash.h.

        * objc/sarray.h: Moved into objc/deprecated/sarray.h;
        objc/sarray.h replaced with a placeholder including the file from
        the deprecated/ directory.
        * objc-private/sarray.h: New file (private copy of sarray.h).
        * hash.c: Include <assert.h> instead of "assert.h"
        * sarray.c: Include <assert.h> instead of "assert.h".  Include
        objc-private/sarray.h instead of objc/sarray.h.
        * selector.c: Include objc-private/sarray.h instead of
        objc/sarray.h.
        * sendmsg.c: Include <assert.h>.  Include objc-private/sarray.h
        instead of objc/sarray.h.
        * Makefile.in (OBJC_DEPRECATED_H): Added sarray.h.

From-SVN: r164389
2010-09-18 09:34:58 +00:00
Nicola Pero
349cfd93f4 In libobjc/:
* objc-private/objc-list.h (list_remove_elem): Unused function
        removed.  (list_nth): Unused function removed.  (list_find):
        Unused function removed.  (list_lenght): Unused function removed.

        Also, fixed an error in my last commit by adding back
        objc/hash.h and objc/objc-list.h that had not been committed.

From-SVN: r164374
2010-09-17 16:52:36 +00:00
Nicola Pero
5be9cdc112 In libobjc/:
* objc/hash.h: Moved into objc/deprecated/hash.h; objc/hash.h
        replaced with a placeholder including the file from the
        deprecated/ directory.
        * objc/objc-api.h: Updated includes.
        * objc/typedstream.h: Updated includes.
        * objc-private/hash.h: New file (private copy of hash.h).
        * objc/objc-list.h: Moved into objc/deprecated/objc-list.h;
        objc/objc-list.h replaced with a placeholder including the file
        from the deprecated/ directory.
        * objc-private/objc-list.h: New file (private copy of objc-list.h).
        * init.c: Include objc-private/hash.h and objc-private/objc-list.h
        instead of objc/hash.h and objc/objc-list.h.
        * selector.c: Same change.
        * class.c: Added include <string.h>, which used to be implicitly included
        when hash.h was included.
        * exception.c: Same change.
        * objects.c: Same change.
        * sarray.c: Same change.
        * sendmsg.c: Same change.
        * Makefile.in (OBJC_DEPRECATED_H): Added hash.h and objc-list.h.
        (OBJC_H): Removed hash.h and objc-list.h

From-SVN: r164373
2010-09-17 16:35:15 +00:00
Nicola Pero
fd3125375f In libobjc/: Implemented objc_sync_enter() and objc_sync_exit(), which are required by @synchronized() to work.
In libobjc/:
       Implemented objc_sync_enter() and objc_sync_exit(), which are
       required by @synchronized() to work.
       * objc-sync.c: New file.
       * objc/objc-sync.h: New file.
       * objc-private/objc-sync.h: New file.
       * init.c (__objc_exec_class): Call __objc_sync_init() during the
       Objective-C runtime startup.
       * Makefile.in: Added objc-sync.c and objc-sync.h.
       * configure.ac: Added GCC_CHECK_TLS.
       * acinclude.m4: Include ../config/enable.m4 and ../config/tls.m4.
       * configure: Regenerated.
       * config.h.in: Regenerated.

From-SVN: r164276
2010-09-14 10:23:37 +00:00
Nicola Pero
7e26828068 In libobjc/:
* Makefile.in (%_gc.lo): New pattern rules to build the
        garbage-collected version of the library.  Removed rules for
        specific files that are no longer needed.  Standardized all rules.
        (C_SOURCE_FILES, OBJC_SOURCE_FILES): New variables.
        (OBJS, OBJS_GC): Compute these from C_SOURCE_FILES and
        OBJC_SOURCE_FILES.
        (INCLUDES): Removed the unused include -I$(srcdir)/objc.

        * memory.c (objc_calloc): Fixed call to GC_malloc when building
        with Garbage Colletion.

From-SVN: r164231
2010-09-12 14:55:21 +00:00
Nicola Pero
457e68e7b2 In libobjc/:
* memory.c: Do not include objc-private/runtime.h.

From-SVN: r164225
2010-09-12 01:51:18 +00:00
Nicola Pero
d1be5d82e0 In libobjc/:
* objc/deprecated/objc_malloc.h: New file.
        * objc/deprecated/objc_valloc.h: New file.
        * objc/objc-api.h: Include the files instead of defining
        objc_valloc, _objc_malloc() and similar.
        * Makefile.in (OBJC_DEPRECATED_H): Added objc_valloc.h and
        objc_malloc.h.
        * memory.c: Removed the extra layer of indirection of _objc_malloc
        and similar.
        (objc_calloc): Use GC_malloc in the garbage-collected
        implementation as GC_malloc returns memory that is already freed.
        (objc_valloc): Deprecated.

From-SVN: r164224
2010-09-12 01:44:58 +00:00
Nicola Pero
7b86998664 In libobjc/:
* objc/deprecated/objc_error.h: New file.
        * objc/objc-api.h: Include deprecated/objc_error.h instead of
        defining objc_error and related.
        * error.c: New file.  Added _objc_abort function which replaces
        objc_error.  No change in functionality as they both print an
        error and abort.
        * misc.c: File removed.  Code moved into memory.c and error.c.
        * memory.c: New file.
        * objc-private/error.h: New file.
        * archive.c: Include objc-private/error.h and use _objc_abort
        instead of objc_error everywhere.
        * class.c: Same change.
        * encoding.c: Same change.
        * init.c: Same change, and simplified init_check_module_version.
        * memory.c: Same change.
        * sendmsg.c:  Same change.
        * thr.c: Same change.
        * Makefile.in (OBJ_DEPRECATED_H): Added objc_error.h.
        (OBJ_H): Reordered list.
        (OBJS): Removed misc.lo, added memory.lo and error.lo.
        (OBJS_GC): Removed misc_gc.lo, added memory_gc.lo and error_gc.lo.
        (misc_gc.lo): Rule removed.
        (error_gc.lo): Rule added.
        (memory_gc.lo): Rule added.

From-SVN: r164223
2010-09-12 00:43:15 +00:00
Nicola Pero
6dead247c9 In libobjc/:
* objc/objc.h (__GNU_LIBOBJC__): New #define providing an easy way
        to check the API version.  Added some comments.

        * objc-private/common.h: New file.
        * NXConstStr.m: Include objc-private/common.h.
        * Object.m: Same change.
        * Protocol.m: Same change.
        * archive.c: Same change.
        * class.c: Same change.
        * encoding.c: Same change.
        * exception.c: Same change.
        * gc.c: Same change.
        * hash.c: Same change.
        * init.c: Same change.
        * libobjc_entry.c: Same change.
        * linking.m: Same change.
        * misc.c: Same change (and added a comment).
        * 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: r164218
2010-09-11 22:47:14 +00:00
Nicola Pero
83c28dfd5c In libobjc/:
* objc/objc-api.h: Removed obsolete #ifdef for NeXTSTEP.

From-SVN: r164217
2010-09-11 21:08:25 +00:00
Nicola Pero
0c11b8fb40 In libobjc/:
* archive.c: Removed not needed includes.
       * class.c: Same change.
       * hash.c: Same change.
       * misc.c: Same change.
       * nil_method.c: Same change.
       * objects.c: Same change.
       * sarray.c: Same change.
       * sendmsg.c: Same change.
       * thr.c: Same change.

From-SVN: r164214
2010-09-11 15:16:49 +00:00
Nicola Pero
a19fac96a2 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
2010-09-11 12:58:27 +00:00
Nicola Pero
3d0d87390b In libobjc:
* objc/deprecated/struct_objc_selector.h: New file.  Definition of
        'struct objc_selector' and 'sel_eq' moved here.
        * objc/deprecated/struct_objc_protocol.h: New file.  Definition of
        'struct objc_procotol' moved here.
        * objc/deprecated/struct_objc_class.h: New file.  Definition of
        'struct objc_class' moved here.
        * objc/deprecated/MetaClass.h: New file.  Definition of MetClass
        moved here.
        * objc/deprecated/STR.h: New file.  Definition of STR moved here.       
        * objc/message.h: New file.  Definitions for relval_t, apply_t,
        arglist, arglist_t and objc_msg_lookup were moved here.
        * objc/objc.h: Include the above files instead of defining the
        corresponding structs, types and functions here.  Added new opaque
        definitions for SEL and Class.  Use Class and not 'struct
        objc_class *' in the definition of 'struct objc_object'.
        Commented all types defined in the file.  Removed special
        definition of BOOL as 'int' on __vxworks; use 'unsigned char'
        there as well.
        * objc/deprecated/objc-unexpected-exception.h: Renamed to
        objc_unexpected_exception.h.
        * objc/objc-api.h: Updated include of
        objc-unexpetected-exception.h
        * objc/objc-exception.h: Updated comments.
        * Makefile.in (OBJC_H, OBJC_DEPRECATED_H): Added the new header
        files.  Reindented list of files.

From-SVN: r164212
2010-09-11 12:38:56 +00:00
Nicola Pero
4c26f0a5a2 * libobjc/objc/objc-api.h (objc_trace): Unused variable removed.
From-SVN: r164199
2010-09-10 17:14:42 +00:00
Nicola Pero
e976a775e2 deprecated: New directory.
* libobjc/objc/deprecated: New directory.
        * libobjc/objc/deprecated/README: New file.
        * libobjc/objc/README: New file.
        * libobjc/objc/typedstream.h: Moved into objc/deprecated/typedstream.h;
        objc/typedstream.h replaced with a placeholder including the file
        from the deprecated/ directory.
        * libobjc/objc/deprecated/objc-unexpected-exception.h: New file with the
        definition of _objc_unexpected_exception.       
        * libobjc/objc/objc-api.h: Include deprecated/objc-unexcepted-exception.h
        instead of defining _objc_unexpected_exception.
        * libobjc/objc/deprecated/Object.h: New file with the deprecated Object
        methods in a 'Deprecated' category.
        * libobjc/objc/Object.h Include deprecated/Object.h instead of defining
        the deprecated methods.
        * libobjc/Object.m: Moved deprecated methods into 'Deprecated' category.
        * libobjc/objc-private: New directory.
        * libobjc/objc-private/README: New file.
        * libobjc/Makefile.in (OBJC_DEPRECATED_H): New variable.
        (install-headers): Create installation directory for
        OBJC_DEPRECATED_H headers, and install them.

From-SVN: r164153
2010-09-10 09:56:40 +00:00
Nicola Pero
03dbada4fb Reindented comment
From-SVN: r164026
2010-09-08 21:10:57 +00:00
Nicola Pero
e30511ed4b objc-exception.h: New file.
* objc/objc-exception.h: New file.
	* exception.c (objc_set_uncaught_exception_handler): Implemented.
	(objc_set_exception_matcher): Implemented.
	(objc_exception_throw): Use the uncaught exception handler if set.
	(PERSONALITY_FUNCTION): Use the exception matcher instead of the
	hardcoded isKindOf.
	(isKindOf): Renamed to is_kind_of_exception_matcher.  Tidied code
	up.  Removed segmentation fault when value is 'nil'.
	* objc/objc-api.h (_objc_unexpected_exception): Mark as
	deprecated.
	* Makefile.in (exception.lo, exception_gc.lo): Use
	-Wno-deprecated-declarations when compiling.
	(OBJC_H): Added objc-exception.h

From-SVN: r164023
2010-09-08 21:03:09 +00:00
Nicola Pero
4470254f1a typedstream.h: Deprecate all functions in the file.
* objc/typedstream.h: Deprecate all functions in the file.  This
        file is obsolete.
        * objc/Object.h ([+streamVersion:], [-read:], [-write:],
        [-awake]): Documented that these methods are deprecated.  Added a
        brief description of the Object class and its relationship to the
        NSObject class.
        * Makefile.in: Compile archive.c and Object.m with
        -Wno-deprecated-declarations.

From-SVN: r164015
2010-09-08 18:02:53 +00:00
Nicola Pero
88a2722e1f Removed obsolete intermediate threading layer.
* thr.c: Use __gthread_objc_xxx functions directly instead of
	__objc_thread_xxx ones.
	* objc/thr.h: Removed prototypes of no longer existing
	__objc_thread_xxx functions.
	* Makefile.in: Removed thr-objc.lo.
	* thr-dce.c: File removed.
	* thr-decosf1.c: File removed.
	* thr-irix.c: File removed.
	* thr-mach.c: File removed.
	* thr-objc.c: File removed.
	* thr-os2.c: File removed.
	* thr-posix.c: File removed.
	* thr-pthreads.c: File removed.
	* thr-rtems.c: File removed.
	* thr-single.c: File removed.
	* thr-solaris.c: File removed.
	* thr-vxworks.c: File removed.
	* thr-win32.c: File removed.
	* README.threads: File removed.
	* THREADS.MACH: File removed.
	* THREADS: Updated.

From-SVN: r163996
2010-09-08 09:35:50 +00:00
Nicola Pero
29b71c0200 * Object.m (MAX_CLASS_NAME_LEN): Unused define removed.
From-SVN: r163936
2010-09-06 23:12:51 +00:00
Iain Sandoe
265a000dbb fix libobjc ppc64 abi for darwin.
libobjc:

	* encoding.c: Add TARGET_ALIGN_NATURAL definition for m64 powerpc darwin.
	Add a comment as to why, update FIXME comments.

testsuite:

	* objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c:
	Update XFAILs.

From-SVN: r163906
2010-09-06 09:27:55 +00:00
Nicola Pero
7b74bb63ff * makefile.dos: Obsolete file removed.
From-SVN: r163903
2010-09-06 08:28:02 +00:00
Ralf Wildenhues
4d9e844614 Update to Automake 1.11.1.
gcc/:
	PR other/43620
	* doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
	* aclocal.m4: Regenerate.

lto-plugin/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.

intl/:
	* aclocal.m4: Regenerate.

boehm-gc/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* include/Makefile.in: Regenerate.

fixincludes/:
	* aclocal.m4: Regenerate.

libcpp/:
	* aclocal.m4: Regenerate.

libdecnumber/:
	* aclocal.m4: Regenerate.

libffi/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* include/Makefile.in: Regenerate.
	* man/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libgfortran/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.

libgomp/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libjava/classpath/:
	* HACKING: Update required Automake version.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* doc/Makefile.in: Regenerate.
	* doc/api/Makefile.in: Regenerate.
	* examples/Makefile.in: Regenerate.
	* external/Makefile.in: Regenerate.
	* external/jsr166/Makefile.in: Regenerate.
	* external/relaxngDatatype/Makefile.in: Regenerate.
	* external/sax/Makefile.in: Regenerate.
	* external/w3c_dom/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* lib/Makefile.in: Regenerate.
	* native/Makefile.in: Regenerate.
	* native/fdlibm/Makefile.in: Regenerate.
	* native/jawt/Makefile.in: Regenerate.
	* native/jni/Makefile.in: Regenerate.
	* native/jni/classpath/Makefile.in: Regenerate.
	* native/jni/gconf-peer/Makefile.in: Regenerate.
	* native/jni/gstreamer-peer/Makefile.in: Regenerate.
	* native/jni/gtk-peer/Makefile.in: Regenerate.
	* native/jni/java-io/Makefile.in: Regenerate.
	* native/jni/java-lang/Makefile.in: Regenerate.
	* native/jni/java-math/Makefile.in: Regenerate.
	* native/jni/java-net/Makefile.in: Regenerate.
	* native/jni/java-nio/Makefile.in: Regenerate.
	* native/jni/java-util/Makefile.in: Regenerate.
	* native/jni/midi-alsa/Makefile.in: Regenerate.
	* native/jni/midi-dssi/Makefile.in: Regenerate.
	* native/jni/native-lib/Makefile.in: Regenerate.
	* native/jni/qt-peer/Makefile.in: Regenerate.
	* native/jni/xmlj/Makefile.in: Regenerate.
	* native/plugin/Makefile.in: Regenerate.
	* resource/Makefile.in: Regenerate.
	* scripts/Makefile.in: Regenerate.
	* tools/Makefile.in: Regenerate.

libjava/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libjava/libltdl/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.

libmudflap/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libobjc/:
	* aclocal.m4: Regenerate.

libssp/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.

libstdc++-v3/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* doc/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* libsupc++/Makefile.in: Regenerate.
	* po/Makefile.in: Regenerate.
	* python/Makefile.in: Regenerate.
	* src/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

zlib/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.

From-SVN: r157949
2010-04-02 18:18:06 +00:00
Dave Korn
1922295935 re PR libobjc/30445 (Fix for FIXME in gcc-4_2-branch/libobjc/Makefile.in)
PR libobjc/30445
	* configure.ac (extra_ldflags_libobjc): Define appropriately for
	Cygwin and MinGW hosts.
	* Makefile.am (libobjc_s.a): Remove dead pre-libtool target.
	(libobjc.dll): Likewise.
	* configure: Regenerate.

From-SVN: r157662
2010-03-23 05:05:35 +00:00
Ralf Wildenhues
43e02a8a71 Sync from git Libtool and regenerate.
/:
	PR target/38384
	PR bootstrap/40972
	* libtool.m4: Sync from git Libtool.
	* ltoptions.m4: Likewise.
	* ltversion.m4: Likewise.
	* lt~obsolete.m4: Likewise.
	* ltmain.sh: Likewise.

boehm-gc/:
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* include/Makefile.in: Regenerate.

fixincludes/:
	* configure: Regenerate.

gcc/:
	* configure: Regenerate.

libffi/:
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* include/Makefile.in: Regenerate.
	* man/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libgfortran/:
	* Makefile.in: Regenerate.
	* configure: Regenerate.

libgomp/:
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libjava/classpath/:
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate.
	* doc/api/Makefile.in: Regenerate.
	* examples/Makefile.in: Regenerate.
	* external/Makefile.in: Regenerate.
	* external/jsr166/Makefile.in: Regenerate.
	* external/relaxngDatatype/Makefile.in: Regenerate.
	* external/sax/Makefile.in: Regenerate.
	* external/w3c_dom/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* lib/Makefile.in: Regenerate.
	* native/Makefile.in: Regenerate.
	* native/fdlibm/Makefile.in: Regenerate.
	* native/jawt/Makefile.in: Regenerate.
	* native/jni/Makefile.in: Regenerate.
	* native/jni/classpath/Makefile.in: Regenerate.
	* native/jni/gconf-peer/Makefile.in: Regenerate.
	* native/jni/gstreamer-peer/Makefile.in: Regenerate.
	* native/jni/gtk-peer/Makefile.in: Regenerate.
	* native/jni/java-io/Makefile.in: Regenerate.
	* native/jni/java-lang/Makefile.in: Regenerate.
	* native/jni/java-math/Makefile.in: Regenerate.
	* native/jni/java-net/Makefile.in: Regenerate.
	* native/jni/java-nio/Makefile.in: Regenerate.
	* native/jni/java-util/Makefile.in: Regenerate.
	* native/jni/midi-alsa/Makefile.in: Regenerate.
	* native/jni/midi-dssi/Makefile.in: Regenerate.
	* native/jni/native-lib/Makefile.in: Regenerate.
	* native/jni/qt-peer/Makefile.in: Regenerate.
	* native/jni/xmlj/Makefile.in: Regenerate.
	* native/plugin/Makefile.in: Regenerate.
	* resource/Makefile.in: Regenerate.
	* scripts/Makefile.in: Regenerate.
	* tools/Makefile.in: Regenerate.

libjava/:
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libmudflap/:
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libobjc/:
	* configure: Regenerate.

libssp/:
	* Makefile.in: Regenerate.
	* configure: Regenerate.

libstdc++-v3/:
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* libsupc++/Makefile.in: Regenerate.
	* po/Makefile.in: Regenerate.
	* python/Makefile.in: Regenerate.
	* src/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

lto-plugin/:
	* configure: Regenerate.
	* Makefile.in: Regenerate.

zlib/:
	* Makefile.in: Regenerate.
	* configure: Regenerate.

From-SVN: r155012
2009-12-05 17:18:53 +00:00
Jakub Jelinek
288d6a77c3 sarray.c (sarray_free): Use old_buckets variable.
* sarray.c (sarray_free): Use old_buckets variable.
	* encoding.c (objc_layout_structure_next_member): Remove unused
	bfld_type_size variable.

	* decContext.c (decContextTestEndian): Move adj definition into
	#if DECCHECK guarded code.

From-SVN: r154730
2009-11-28 21:31:39 +01:00
Ralf Wildenhues
df58e64872 Update AC_PREREQ entries to 2.64
/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

intl/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libdecnumber/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libiberty/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libjava/classpath/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libjava/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libjava/libltdl/:
	* configure.ac (AC_PREREQ): Bump to 2.64.  Remove FIXME.

libssp/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libobjc/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libstdc++-v3/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libada/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libgcc/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libgfortran/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

boehm-gc/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

gnattools/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

gcc/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

fixincludes/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libmudflap/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

zlib/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libffi/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libcpp/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libgomp/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

From-SVN: r151059
2009-08-24 19:08:51 +00:00
Ralf Wildenhues
5213506e24 Regenerate tree using Autoconf 2.64 and Automake 1.11.
config/:
	* override.m4 (_GCC_AUTOCONF_VERSION): Bump to 2.64.

:
	* configure: Regenerate.

intl/:
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config.h.in: Regenerate.

libiberty/:
	* config.in: Regenerate.
	* configure: Regenerate.

boehm-gc/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* include/Makefile.in: Regenerate.
	* include/gc_config.h.in: Regenerate.

fixincludes/:
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config.h.in: Regenerate.

gcc/:
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.

libgcc/:
	* configure: Regenerate.

gnattools/:
	* configure: Regenerate.

libada/:
	* configure: Regenerate.

libcpp/:
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.

libdecnumber/:
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config.in: Regenerate.

libffi/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* fficonfig.h.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* man/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libgfortran/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.

libgomp/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libjava/classpath/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate.
	* doc/api/Makefile.in: Regenerate.
	* examples/Makefile.in: Regenerate.
	* external/Makefile.in: Regenerate.
	* external/jsr166/Makefile.in: Regenerate.
	* external/relaxngDatatype/Makefile.in: Regenerate.
	* external/sax/Makefile.in: Regenerate.
	* external/w3c_dom/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* include/config.h.in: Regenerate.
	* lib/Makefile.in: Regenerate.
	* native/Makefile.in: Regenerate.
	* native/fdlibm/Makefile.in: Regenerate.
	* native/jawt/Makefile.in: Regenerate.
	* native/jni/Makefile.in: Regenerate.
	* native/jni/classpath/Makefile.in: Regenerate.
	* native/jni/gconf-peer/Makefile.in: Regenerate.
	* native/jni/gstreamer-peer/Makefile.in: Regenerate.
	* native/jni/gtk-peer/Makefile.in: Regenerate.
	* native/jni/java-io/Makefile.in: Regenerate.
	* native/jni/java-lang/Makefile.in: Regenerate.
	* native/jni/java-math/Makefile.in: Regenerate.
	* native/jni/java-net/Makefile.in: Regenerate.
	* native/jni/java-nio/Makefile.in: Regenerate.
	* native/jni/java-util/Makefile.in: Regenerate.
	* native/jni/midi-alsa/Makefile.in: Regenerate.
	* native/jni/midi-dssi/Makefile.in: Regenerate.
	* native/jni/native-lib/Makefile.in: Regenerate.
	* native/jni/qt-peer/Makefile.in: Regenerate.
	* native/jni/xmlj/Makefile.in: Regenerate.
	* native/plugin/Makefile.in: Regenerate.
	* resource/Makefile.in: Regenerate.
	* scripts/Makefile.in: Regenerate.
	* tools/Makefile.in: Regenerate.

libjava/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* include/config.h.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libjava/libltdl/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config-h.in: Regenerate.
	* configure: Regenerate.

libmudflap/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libobjc/:
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config.h.in: Regenerate.

libssp/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.

libstdc++-v3/:
	* Makefile.in: Regenerate.
	* acinclude.m4: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* libsupc++/Makefile.in: Regenerate.
	* po/Makefile.in: Regenerate.
	* python/Makefile.in: Regenerate.
	* src/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

zlib/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

From-SVN: r151014
2009-08-22 13:22:20 +00:00