+2010-11-18 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * ivars.c: Include stdlib.h.
+ * protocols.c: Same change.
+
+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.
+
+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++.
+
+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.
+
+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.
+
+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.
+
+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.
+
+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.
+
+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.
+
+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.
+
+2010-10-15 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.
+
+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.
+
+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.
+
+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.
+
+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.
+
+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.
+
2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com>
* class.c: Include objc/runtime.h and objc-private/module-abi-8.h
-Wno-deprecated-declarations when compiling.
(OBJC_H): Added objc-exception.h
-2010-09-08 Nicola Pero <nicola@nicola.brainstorm.co.uk>
+2010-09-08 Nicola Pero <nicola.pero@meta-innovation.com>
* objc/typedstream.h: Deprecate all functions in the file. This
file is obsolete.