Commit Graph

99 Commits

Author SHA1 Message Date
Nicola Pero
68ade9e4e8 In libobjc/: 2011-02-28 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2011-02-28  Nicola Pero  <nicola.pero@meta-innovation.com>
	
	* selector.c (sel_getTypedSelector): Return NULL if there are
	multiple selectors with conflicting types.
	* objc/runtime.h (sel_getTypedSelector): Updated documentation.
	
In gcc/testsuite/:
2011-02-28  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc.dg/gnu-api-2-sel.m: Test that sel_getTypedSelector return
	NULL in case of a selector with conflicting types.
	* obj-c++.dg/gnu-api-2-sel.mm: Same change.

From-SVN: r170563
2011-02-28 14:48:23 +00:00
Jakub Jelinek
d652f226fc Update Copyright years for files modified in 2010.
From-SVN: r168438
2011-01-03 21:52:22 +01:00
Nicola Pero
9cacfc3eb3 In libobjc/: 2010-12-24 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-24  Nicola Pero  <nicola.pero@meta-innovation.com>

	* selector.c (sel_getTypedSelector): Return NULL if given a NULL
	argument.
	(sel_registerTypedName): Same.
	(sel_registerName): Same.
	* objc/runtime.h: Updated documentation.
	
In gcc/testsuite/:
2010-12-24  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc.dg/gnu-api-2-sel.m: Test calling sel_getUid,
	sel_registerName and sel_registerTypedName with NULL arguments.
	Updated the test to work with the Apple runtime as well.
	* obj-c++.dg/gnu-api-2-sel.mm: Same change.

From-SVN: r168231
2010-12-24 20:10:46 +00:00
Nicola Pero
410644c41a In libobjc/: 2010-12-24 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-24  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc/runtime.h (class_addIvar): Updated documentation.  The
	alignment is actually the log_2 of the alignment in bytes.
	* ivars.c (class_addIvar): Corresponding change to the
	implementation.

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

	* objc.dg/gnu-api-2-class.m: Updated test to pass log_2 of the
	alignment to class_addIvar, instead of the alignment itself.
	* obj-c++.dg/gnu-api-2-class.mm: Same change.

From-SVN: r168230
2010-12-24 18:41:05 +00:00
Nicola Pero
5750872c61 In libobjc/: 2010-12-24 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-24  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc/runtime.h (sel_getType): Renamed to sel_getTypeEncoding to
	be consistent with method_getTypeEncoding and
	ivar_getTypeEncoding.
	(sel_copyTypedSelectorList, sel_getTypedSelector): New.
	* selector.c (sel_getType): Renamed to sel_getTypeEncoding.
	(sel_copyTypedSelectorList, sel_getTypedSelector): New.
	(sel_get_type): Updated call to sel_getType.
	
In gcc/testsuite/:
2010-12-24  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc.dg/gnu-api-2-sel.m: Updated for renaming of sel_getType to
	sel_getTypeEncoding.  Test that sel_getTypeEncoding returns NULL
	when called with a NULL argument.  Added test for
	sel_copyTypedSelectorList and sel_getTypedSelector.
	* obj-c++.dg/gnu-api-2-sel.mm: Same changes.

From-SVN: r168229
2010-12-24 17:00:19 +00:00
Nicola Pero
877bf1953a In libobjc/: 2010-12-24 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-12-24  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc/runtime.h (class_conformsToProtocol,
	class_copyProtocolList): Updated documentation.

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

	* obj-c.dg/gnu-api-2-class.m: Test that class_conformsToProtocol()
	does not check the superclasses.
	* obj-c++.dg/gnu-api-2-class.mm: Same change.

From-SVN: r168226
2010-12-24 15:32:25 +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
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
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
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
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
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
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
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
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
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
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
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
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