aboutsummaryrefslogtreecommitdiff
path: root/libobjc/objc-private/runtime.h
AgeCommit message (Collapse)AuthorFilesLines
2021-09-13Merged current trunk to branch.Thomas Koenig1-1/+1
2020-01-01Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r279813
2019-01-01Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r267494
2018-01-03Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r256169
2017-01-01Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r243994
2016-01-04Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r232055
2015-01-05Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r219188
2014-01-02Update copyright years in libobjc/Richard Sandiford1-1/+1
From-SVN: r206299
2013-07-21class.c: Fix typos.Ondřej Bílka1-2/+2
2013-07-21 Ondřej Bílka <neleai@seznam.cz> * class.c: Fix typos. * encoding.c: Likewise. * init.c: Likewise. * objc-private/runtime.h: Likewise. * objc/runtime.h: Likewise. * objc-sync.c: Likewise. From-SVN: r201097
2013-02-03Update copyright years in libobjc.Richard Sandiford1-2/+1
From-SVN: r195693
2013-01-04Update Copyright years for files modified in 2011 and/or 2012.Jakub Jelinek1-1/+2
From-SVN: r194903
2011-06-07In libobjc/: 2011-06-07 Nicola Pero <nicola.pero@meta-innovation.com>Nicola Pero1-4/+1
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
2010-12-22In libobjc/: 2010-12-22 Nicola Pero <nicola.pero@meta-innovation.com>Nicola Pero1-1/+1
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
2010-12-22In libobjc/: 2010-12-22 Nicola Pero <nicola.pero@meta-innovation.com>Nicola Pero1-10/+2
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
2010-12-21In libobjc/: 2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>Nicola Pero1-8/+8
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
2010-12-21In libobjc/: 2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>Nicola Pero1-6/+0
In libobjc/: 2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com> * objc-private/runtime.h (DEBUG_PRINTF): Moved from here ... * objc-private/common.h (DEBUG_PRINTF): To here. * hash.c: Do not include objc-private/runtime.h and objc/thr.h. From-SVN: r168111
2010-12-19In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>Nicola Pero1-8/+0
In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com> * objc-private/runtime.h (__objc_selector_max_index, __objc_init_selector_tables, __objc_register_selectors_from_class, __objc_register_selectors_from_list, __objc_register_selectors_from_description_list): Moved to ... * objc-private/selector.h: ... here. From-SVN: r168067
2010-12-19In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com>Nicola Pero1-6/+0
In libobjc/: 2010-12-19 Nicola Pero <nicola.pero@meta-innovation.com> * objc-private/runtime.h (__objc_class_links_resolved): Removed. (__objc_print_dtable_stats): Removed. (__sel_register_typed_name): Removed. * sendmsg.c (__objc_print_dtable_stats): Use 'void' as argument. From-SVN: r168066
2010-10-16In libobjc/: 2010-10-16 Nicola Pero <nicola.pero@meta-innovation.com>Nicola Pero1-1/+1
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-15In libobjc/: 2010-10-15 Nicola Pero <nicola.pero@meta-innovation.com>Nicola Pero1-0/+3
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-15In libobjc/: 2010-10-14 Nicola Pero <nicola.pero@meta-innovation.com>Nicola Pero1-0/+2
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-12archive.c: Do not include objc/objc.h.Nicola Pero1-1/+2
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-12In libobjc/: 2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com>Nicola Pero1-3/+3
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-11In libobjc/: 2010-10-11 Nicola Pero <nicola.pero@meta-innovation.com>Nicola Pero1-3/+3
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-09-11In libobjc/:Nicola Pero1-0/+101
* objc/runtime.h: Moved to objc-private/runtime.h. Do not include all the objc/*.h files. * objc-private/runtime.h: New file. * archive.c: Include objc-private/runtime.h (and required objc/*.h files) instead of objc/runtime.h. * class.c: Same change. * hash.c: Same change. * init.c: Same change. * misc.c: Same change. * nil_method.c: Same change. * objects.c: Same change. * sarray.c: Same change. * selector.c: Same change. * sendmsg.c: Same change. * thr.c: Same change. From-SVN: r164213