In libobjc/:
2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/50002
* class.c (__objc_update_classes_with_methods): Iterate over meta
classes as well as normal classes when refreshing the method
implementations. This fixes replacing class methods.
2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com>
* class.c (class_getSuperclass): Fixed to work with meta classes
still in construction too.
In gcc/testsuite/:
2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/50002
* objc.dg/gnu-api-2-class.m: Updated comments.
* obj-c++.dg/gnu-api-2-class.mm: Likewise.
* objc.dg/gnu-api-2-class-meta.m: New test.
* obj-c++.dg/gnu-api-2-class-meta.mm: Likewise.
2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/49882
* obj-c++.dg/gnu-api-2-class.mm (main): Test class_getSuperclass()
with classes that are in construction.
From-SVN: r177510
In libobjc/:
2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/49882
* class.c (class_getSuperclass): Return the superclass if the
class is in construction.
* objc/runtime.h (class_getSuperclass): Updated documentation.
In gcc/testsuite/:
2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/49882
* objc.dg/gnu-api-2-class.m (main): Test class_getSuperclass()
with classes that are in construction.
From-SVN: r177505
In libobjc/:
2011-06-07 Nicola Pero <nicola.pero@meta-innovation.com>
Removed the Traditional Objective-C runtime public API.
* Makefile.in (OBJC_DEPRECATED_H): Variable removed.
(install-headers): Do not create the objc/deprecated directory and
do not install the deprecated headers.
(OBJC_H): Removed encoding.h and objc-api.h.
* Object.m: Removed all methods with the exception of -class and
-isEqual:. Updated includes. ([-class]): Use Modern API.
* objc/Object.h: Do not include deprecated/Object.h.
* objc/deprecated/Object.h: Removed.
* linking.m (__objc_linking): Call [Object class] instead of
[Object name].
* Protocol.m: Removed all methods with the exception of -isEqual:.
Updated includes.
* objc/Protocol.h: Do not include deprecated/Protocol.h.
* objc/deprecated/Protocol.h: Removed.
* objc/deprecated/struct_objc_symtab.h: Removed.
* objc/deprecated/struct_objc_module.h: Removed.
* objc/deprecated/struct_objc_ivar.h: Removed.
* objc/deprecated/struct_objc_ivar_list.h: Removed.
* objc/deprecated/struct_objc_method.h: Removed.
* objc/deprecated/struct_objc_method_list.h: Removed.
* objc/deprecated/struct_objc_protocol_list.h: Removed.
* objc/deprecated/struct_objc_category.h: Removed.
* objc/deprecated/MetaClass.h: Removed.
* objc/deprecated/objc_msg_sendv.h: Removed.
* objc/deprecated/README: Removed.
* objc/deprecated/struct_objc_class.h: Removed.
* objc/deprecated/struct_objc_protocol.h: Removed.
* objc/deprecated/struct_objc_selector.h: Removed.
* objc/encoding.h: Removed.
* objc/message.h (struct objc_super): Removed the definition for
the Traditional Objective-C runtime API.
* objc/objc.h: Do not include objc/objc-decls.h.
deprecated/struct_objc_selector.h, deprecated/MetaClass.h,
deprecated/struct_objc_class.h, deprecated/struct_objc_protocol.h
and deprecated/objc_msg_sendv.h. Uncommented new definition of
Protocol *.
* objc/objc-api.h: Removed.
* objc/runtime.h: Updated comments. Removed check to detect
concurrent usage of Traditional and Modern APIs.
* objc-private/module-abi-8.h: Always define struct objc_class and
struct objc_protocol. (struct objc_protocol_list): Changed type
of 'list' argument from 'Protocol *' to 'struct objc_protocol *'.
(class_get_instance_size): Added.
* objc-private/protocols.h (__objc_protocols_add_protocol): Take a
'struct objc_protocol *' as argument, not a 'Protocol *'.
* objc-private/runtime.h: Updated comments.
* objc-private/selector.h (struct objc_selector, sel_eq): Added.
* class.c: Include objc-private/selector.h.
(objc_get_meta_class): Return a Class instead of a MetaClass.
* encoding.c (method_get_next_argument): Removed.
(method_get_first_argument): Removed.
(method_get_nth_argument): Removed.
* gc.c: Include objc/runtime.h instead of objc/encoding.h.
Include objc-private/module-abi-8.h and ctype.h.
* protocols.c (__objc_protocols_add_protocol): Take a 'struct
objc_protocl *' as argument, not a 'Protocol *'.
(class_addProtocol): Added casts to 'struct objc_protocol *' and
'Protocol *'.
(class_copyProtocolList): Likewise.
(protocol_conformsToProtocol): Likewise.
(protocol_copyProtocolList): Likewise.
* sarray.c: Include objc-private/module-abi-8.h.
* sendmsg.c (method_get_next_argument): Removed.
(method_get_first_argument): Removed.
(method_get_nth_argument): Removed.
(objc_msg_sendv): Removed.
(arglist_t, retval_t): New. (class_get_class_method): Take a
'Class', not 'MetaClass', argument.
* thr.c: Include module-abi-8.h.
From-SVN: r174765
In libobjc/:
2011-06-03 Nicola Pero <nicola.pero@meta-innovation.com>
* Makefile.in (OBJC_DEPRECATED_H): Removed struct_objc_static_instances.h
and objc_get_uninstalled_dtable.h.
* objc/deprecated/struct_objc_static_instances.h: Removed.
* objc/deprecated/objc_get_uninstalled_dtable.h: Removed.
* objc/objc-api.h: Do not include deprecated/objc_static_instances.h
and deprecated/objc_get_uninstalled_dtable.h.
From-SVN: r174618
In libobjc/:
2011-06-03 Nicola Pero <nicola.pero@meta-innovation.com>
* Makefile.in (OBJC_DEPRECATED_H): Removed METHOD_NULL.h.
* objc/objc-api.h: Do not include deprecated/METHOD_NULL.h.
* objc/deprecated/METHOD_NULL.h: Removed.
From-SVN: r174616
In libobjc/:
2011-06-03 Nicola Pero <nicola.pero@meta-innovation.com>
* objc/objc.h: Do not include deprecated/STR.h.
* objc/deprecated/STR.h: Removed.
* Makefile.in (OBJC_DEPRECATED_H): removed STR.h.
From-SVN: r174614
In libobjc/:
2011-06-02 Nicola Pero <nicola.pero@meta-innovation.com>
* Makefile.in (OBJC_DEPRECATED_H): Removed objc_error.h.
* objc/deprecated/objc_error.h: Removed.
* objc/objc-api.h: Do not include deprecated/objc_error.h.
* libobjc.def (objc_error, objc_verror): Removed.
* error.c (_objc_error_handler, objc_error, objc_verror,
objc_set_error_handler): Removed.
* Object.m ([-error:], [-perform:], [-perform:with:],
[-perform:with:with], [-subclassResponsibility:],
[-notImplemented:], [-shouldNotImplement:], [-doesNotRecognize:]):
Removed.
* objc/deprecated/Object.h: Removed the same methods.
* sendmsg.c (__objc_forward): Do not try to invoke the "error:"
method after trying to invoke the "doesNotRecognize:" method.
In gcc/testsuite/:
2011-06-02 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/torture/forward-1.m (main): Updated testcase.
From-SVN: r174587
In libobjc/:
2011-05-26 Nicola Pero <nicola.pero@meta-innovation.com>
* sendmsg.c: Reindented part of the file. No non-trivial changes
in code.
From-SVN: r174269
In libobjc/:
2011-05-26 Nicola Pero <nicola.pero@meta-innovation.com>
* sendmsg.c (__objc_install_dtable_for_class): Use objc_getClass,
not objc_lookupClass.
From-SVN: r174268
In libobjc/:
2011-05-25 Richard Frith-Macdonald <rfm@gnu.org>
David Ayers <ayers@fsfe.org>
PR libobjc/38037
* sendmsg.c: Include objc/hash.h.
(get_implementation): New function, mostly with code from get_imp
updated to support the new +initialize dispatch table logic.
(get_imp): Use get_implementation.
(__objc_responds_to): Updated to support the new +initialize
dispatch table logic.
(class_respondsToSelector): Likewise.
(objc_msg_lookup): Use get_implementation.
(__objc_init_install_dtable): Removed.
(__objc_install_methods_in_dtable): Updated arguments.
(__objc_install_dispatch_table_for_class): Renamed to
__objc_install_dtable_for_class and updated to support the new
+initialize dispatch table logic.
(__objc_update_dispatch_table_for_class): Updated to support the
new +initialize dispatch table logic.
(__objc_forward): Call get_implementation instead of get_imp.
(prepared_dtable_table): New.
(__objc_prepare_dtable_for_class): New.
(__objc_prepared_dtable_for_class): New.
(__objc_get_prepared_imp): New.
(__objc_install_prepared_dtable_for_class): New.
Co-Authored-By: David Ayers <ayers@fsfe.org>
From-SVN: r174221
In libobjc/:
2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/48177
* selector.c (__sel_register_typed_name): Use sel_types_match()
instead of strcmp() to compare selector types (Suggestion by
Richard Frith-Macdonald <rfm@gnu.org>).
In gcc/testsuite/:
2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/48177
* objc.dg/pr48177.m: New testcase.
From-SVN: r174143
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
In libobjc/:
2010-12-26 Nicola Pero <nicola.pero@meta-innovation.com>
* init.c (create_tree_of_subclasses_inherited_from): Use
class_superclass_of_class instead of assuming a class is
unresolved when it could be resolved. Tidied up code.
(__objc_tree_insert_class): Enhanced DEBUG_PRINTF.
(objc_tree_insert_class): Tidied up loop; return immediately upon
inserting a class.
(__objc_exec_class): Do not set __objc_class_tree_list.
In gcc/testsuite/:
2010-12-26 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/special/special.exp: Added load-category-2 and
load-category-3 tests.
* objc.dg/special/load-category-2.h: New.
* objc.dg/special/load-category-2.m: New.
* objc.dg/special/load-category-2a.m: New.
* objc.dg/special/load-category-3.h: New.
* objc.dg/special/load-category-3.m: New.
* objc.dg/special/load-category-3a.m: New.
From-SVN: r168251
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
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
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
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
In libobjc/:
2010-12-23 Nicola Pero <nicola.pero@meta-innovation.com>
* init.c (create_tree_of_subclasses_inherited_from): Updated
DEBUG_PRINTF messages.
(__objc_tree_insert_class): Same.
(__objc_send_load_using_method_list): Same.
(__objc_send_load): Same.
(__objc_exec_class): Same. In particular, do not print the module
name since it is no longer used.
* sendmsg.c (__objc_send_initialize): Added DEBUG_PRINTFs for
tracking +initialize calls.
(__objc_update_dispatch_table_for_class): Added DEBUG_PRINTFs for
tracking updates of dispatch tables.
(__objc_install_dispatch_table_for_class): Same.
From-SVN: r168215
In gcc/testsuite/:
2010-12-23 Nicola Pero <nicola.pero@meta-innovation.com>
* obj-c.dg/gnu-api-2-class.m: Test that class_addMethod() returns
NO if the method is already implemented in the class.
* obj-c++.dg/gnu-api-2-class.mm: Same change.
In libobjc/:
2010-12-23 Nicola Pero <nicola.pero@meta-innovation.com>
* sendmsg.c (class_addMethod): Return NO if the method already
exists in the class.
From-SVN: r168199
In libobjc/:
2010-12-22 Nicola Pero <nicola.pero@meta-innovation.com>
* init.c (duplicate_classes): New.
(__objc_exec_class): Initialize duplicate_classes.
(__objc_create_classes_tree): Ignore classes in the
duplicate_classes table.
(__objc_call_load_callback): Same.
(__objc_init_class): If a duplicate class is found, add it to
duplicate_classes instead of aborting. Return YES if the class is
not a duplicate, and NO if it is.
* objc-private/runtime.h (__objc_init_class): Updated prototype.
From-SVN: r168183
In libobjc/:
2010-12-22 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-private/objc-list.h: Reindented file. No code changes.
* objc-private/sarray.h: Same change.
From-SVN: r168150
In libobjc/:
2010-12-22 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-private/accessors.h: Removed 'extern "C"' guards. This
file is never compiled with C++.
* objc-private/hash.h: Same change.
* objc-private/objc-list.h: Same change.
* objc-private/objc-sync.h: Same change.
* objc-private/protocols.h: Same change.
* objc-private/runtime.h: Same change.
* objc-private/sarray.h: Same change.
* objc-private/selector.h: Same change.
From-SVN: r168149
In libobjc/:
2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/18764
* class.c (__objc_add_class_to_hash): Return YES if the class was
added, and NO if it already existed.
* init.c (__objc_init_class): If __objc_add_class_to_hash returns
NO, then abort the program with an error message.
* objc-private/runtime.h (__objc_add_class_to_hash): Updated
declaration.
From-SVN: r168139
In libobjc/:
2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>
* init.c (_objc_load_callback): Initialize with 0.
(__objc_call_callback): Renamed to __objc_call_load_callback.
Check _objc_load_callback only once, and if it is not set, return
immediately.
(objc_send_load): Updated call to __objc_call_callback.
From-SVN: r168133
In libobjc/:
2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/16110
* init.c (__objc_send_message_in_list): Renamed to
__objc_send_load_using_method_list. Do not take an 'op' argument.
Register the 'load' selector if needed.
(__objc_send_load): Do not register the 'load' selector. Updated
call to __objc_send_message_in_list.
(__objc_create_classes_tree): Add the class of any claimed
category that was loaded in the module to the list of classes for
which we try to execute +load.
In gcc/testsuite/:
2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/16110
* objc.dg/special/special.exp: Added new test.
* objc.dg/special/load-category-1.m: New.
* objc.dg/special/load-category-1a.m: New.
* objc.dg/special/load-category-1.h: New.
From-SVN: r168122
In libobjc/:
2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-private/common.h: When DEBUG is defined, include <stdio.h>.
Updated comments.
* init.c (__objc_tree_insert_class): Use %p, not %x, when printing
a pointer using DEBUG_PRINTF.
From-SVN: r168119
In libobjc/:
2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/45953
* selector.c (__sel_register_typed_name): When registering a new
selector with the same name as an existing one, reuse the existing
name string. Also updated types, casts and comments in the whole
function.
In gcc/testsuite/:
2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/45953
* objc.dg/libobjc-selector-1.m: New test.
From-SVN: r168115
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