Differences From Artifact [e5c437ae29]:
- File src/runtime/runtime.h — part of check-in [e35b10115e] at 2014-05-14 20:28:11 on branch trunk — Always use __foo__ instead of foo for attributes (user: js, size: 5969) [annotate] [blame] [check-ins using]
To Artifact [eb23c8ebea]:
- File
src/runtime/runtime.h
— part of check-in
[1ebb9eb7b3]
at
2014-05-15 15:32:35
on branch trunk
— Multiple dtable / sparse array improvements
* dtable.m is now the old sparse array, using IMP as type for values and
thus not violating the C standard anymore (functions may not be stored
in void*)
* New sparsearray.m which can work with any size, based on the sparse
array from the fast path of class.m
* Fast path of class.m now uses the new sparsearray.m (user: js, size: 5960) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
57 58 59 60 61 62 63 | Class superclass; const char *name; unsigned long version; unsigned long info; long instance_size; struct objc_ivar_list *ivars; struct objc_method_list *methodlist; | | | 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | Class superclass; const char *name; unsigned long version; unsigned long info; long instance_size; struct objc_ivar_list *ivars; struct objc_method_list *methodlist; struct objc_dtable *dtable; Class *subclass_list; void *sibling_class; struct objc_protocol_list *protocols; void *gc_object_type; unsigned long abi_version; int32_t **ivar_offsets; struct objc_property_list *properties; |
︙ | ︙ | |||
213 214 215 216 217 218 219 | extern const char* object_getClassName(id); extern const char* protocol_getName(Protocol*); extern bool protocol_isEqual(Protocol*, Protocol*); extern bool protocol_conformsToProtocol(Protocol*, Protocol*); extern void objc_exit(void); extern objc_uncaught_exception_handler objc_setUncaughtExceptionHandler( objc_uncaught_exception_handler); | | | 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 | extern const char* object_getClassName(id); extern const char* protocol_getName(Protocol*); extern bool protocol_isEqual(Protocol*, Protocol*); extern bool protocol_conformsToProtocol(Protocol*, Protocol*); extern void objc_exit(void); extern objc_uncaught_exception_handler objc_setUncaughtExceptionHandler( objc_uncaught_exception_handler); extern void objc_setForwardHandler(IMP, IMP); extern id objc_autorelease(id); extern void* objc_autoreleasePoolPush(void); extern void objc_autoreleasePoolPop(void*); extern id _objc_rootAutorelease(id); /* Used by the compiler, but can be called manually. */ extern IMP objc_msg_lookup(id, SEL); extern IMP objc_msg_lookup_stret(id, SEL); |
︙ | ︙ |