Commit Graph

309 Commits

Author SHA1 Message Date
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
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