1. 24 Oct, 2010 1 commit
  2. 17 Oct, 2010 2 commits
    • In gcc/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> · 5b8b526e
      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
      Nicola Pero committed
    • In libobjc/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> · 1501d094
      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
      Nicola Pero committed
  3. 16 Oct, 2010 3 commits
    • In libobjc/: 2010-10-16 Nicola Pero <nicola.pero@meta-innovation.com> · 6c5c7efd
      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
      Nicola Pero committed
    • class.c (class_getSuperclass): Call __objc_resolve_class_links if the class is not resolved yet. · 1cde73d7
      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
      Nicola Pero committed
    • In libobjc/: 2010-10-16 Nicola Pero <nicola.pero@meta-innovation.com> · 3c44c190
      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
      Nicola Pero committed
  4. 15 Oct, 2010 5 commits
    • In libobjc/: 2010-10-15 Nicola Pero <nicola.pero@meta-innovation.com> · 8437e063
      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
      Nicola Pero committed
    • In libobjc/: 2010-10-15 Nicola Pero <nicola.pero@meta-innovation.com> · 51194e8e
      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
      Nicola Pero committed
    • In libobjc/: 2010-10-15 Nicola Pero <nicola.pero@meta-innovation.com> · ae422ccd
      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
      Nicola Pero committed
    • Fixed date in my last changelog entry · 97764753
      From-SVN: r165501
      Nicola Pero committed
    • In libobjc/: 2010-10-14 Nicola Pero <nicola.pero@meta-innovation.com> · f7185d47
      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
      Nicola Pero committed
  5. 13 Oct, 2010 3 commits
    • In libobjc/: 2010-10-13 Nicola Pero <nicola.pero@meta-innovation.com> · 5254c66b
      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
      Nicola Pero committed
    • In libobjc/: 2010-10-13 Nicola Pero <nicola.pero@meta-innovation.com> · b0453850
      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
      Nicola Pero committed
    • In libobjc/: 2010-10-13 Nicola Pero <nicola.pero@meta-innovation.com> · ad49efbd
      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
      Nicola Pero committed
  6. 12 Oct, 2010 6 commits
    • In libobjc/: 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com> · c994cc85
      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
      Nicola Pero committed
    • Makefile.in (C_SOURCE_FILES): Added methods.c. · ad9eef11
      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
      Nicola Pero committed
    • In libobjc/: 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com> · be05b0f5
      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
      Nicola Pero committed
    • archive.c: Do not include objc/objc.h. · 718a8e53
      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
      Nicola Pero committed
    • In libobjc/: 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com> · debfbfee
      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
      Nicola Pero committed
    • In libobjc/: 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com> · 524660d2
      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
      Nicola Pero committed
  7. 11 Oct, 2010 2 commits
    • In libobjc/: 2010-10-11 Nicola Pero <nicola.pero@meta-innovation.com> · 90a2689f
      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
      Nicola Pero committed
    • In libobjc/: 2010-10-11 Nicola Pero <nicola.pero@meta-innovation.com> · fdcbbfe7
      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
      Nicola Pero committed
  8. 10 Oct, 2010 3 commits
    • objc.h: Updated comments. · bc18535a
      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
      Nicola Pero committed
    • In libobjc/: 2010-10-10 Nicola Pero <nicola.pero@meta-innovation.com> · e4d50866
      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
      Nicola Pero committed
    • In libobjc/: 2010-10-10 Nicola Pero <nicola.pero@meta-innovation.com> · 2461ab4b
      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
      Nicola Pero committed
  9. 09 Oct, 2010 3 commits
  10. 06 Oct, 2010 1 commit
    • In gcc/: 2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> · f05b9d93
      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
      Nicola Pero committed
  11. 30 Sep, 2010 1 commit
  12. 27 Sep, 2010 1 commit
    • In gcc/: 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com> · 177b48f9
      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
      Nicola Pero committed
  13. 26 Sep, 2010 3 commits
    • Reverted removing 'inline' from get_imp · bd74d88b
      From-SVN: r164636
      Nicola Pero committed
    • In libobjc/: · d284c684
              * libobjc_entry.c: File removed.
      
      From-SVN: r164633
      Nicola Pero committed
    • sendmsg.c (get_imp): Remove inline. · 7116b6ea
      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
      Kai Tietz committed
  14. 18 Sep, 2010 1 commit
    • In libobjc/: · 5d3b14bd
              * 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
      Nicola Pero committed
  15. 17 Sep, 2010 2 commits
    • In libobjc/: · 349cfd93
              * 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
      Nicola Pero committed
    • In libobjc/: · 5be9cdc1
              * 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
      Nicola Pero committed
  16. 14 Sep, 2010 1 commit
    • In libobjc/: Implemented objc_sync_enter() and objc_sync_exit(), which are… · fd312537
      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
      Nicola Pero committed
  17. 12 Sep, 2010 2 commits
    • In libobjc/: · 7e268280
              * Makefile.in (%_gc.lo): New pattern rules to build the
              garbage-collected version of the library.  Removed rules for
              specific files that are no longer needed.  Standardized all rules.
              (C_SOURCE_FILES, OBJC_SOURCE_FILES): New variables.
              (OBJS, OBJS_GC): Compute these from C_SOURCE_FILES and
              OBJC_SOURCE_FILES.
              (INCLUDES): Removed the unused include -I$(srcdir)/objc.
      
              * memory.c (objc_calloc): Fixed call to GC_malloc when building
              with Garbage Colletion.
      
      From-SVN: r164231
      Nicola Pero committed
    • In libobjc/: · 457e68e7
             * memory.c: Do not include objc-private/runtime.h.
      
      From-SVN: r164225
      Nicola Pero committed