Differences From Artifact [a228e75679]:
- File src/runtime/private.h — part of check-in [f2fe8f96d5] at 2020-01-02 22:16:48 on branch trunk — Move autorelease pools to runtime (user: js, size: 11089) [annotate] [blame] [check-ins using] [more...]
To Artifact [82de8c2339]:
- File
src/runtime/private.h
— part of check-in
[49aee5736e]
at
2020-01-25 20:04:54
on branch trunk
— tlskey.m: Use hashtable from runtime on AmigaOS
tlskey.m used OFMapTable only on AmigaOS. This became a problem when
autorelease pools were moved into the runtime, as autorelease pools use
TLS. The build then broke, as there suddenly was a dependency from the
runtime on ObjFW.This now uses the hashtable from the runtime and also no longer uses
OFList, thus fixing the build. As we always use the runtime on AmigaOS
anyway, this is fine. (user: js, size: 11152) [annotate] [blame] [check-ins using] [more...]
︙ | ︙ | |||
25 26 27 28 29 30 31 32 33 34 35 36 37 38 | # define _Nonnull # endif # ifndef _Nullable # define _Nullable # endif #endif struct objc_class { Class _Nonnull isa; Class _Nullable superclass; const char *_Nonnull name; unsigned long version; unsigned long info; long instanceSize; | > > > > | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | # define _Nonnull # endif # ifndef _Nullable # define _Nullable # endif #endif typedef uint32_t (*_Nonnull objc_hashtable_hash_func)(const void *_Nonnull key); typedef bool (*_Nonnull objc_hashtable_equal_func)(const void *_Nonnull key1, const void *_Nonnull key2); struct objc_class { Class _Nonnull isa; Class _Nullable superclass; const char *_Nonnull name; unsigned long version; unsigned long info; long instanceSize; |
︙ | ︙ | |||
185 186 187 188 189 190 191 | struct objc_hashtable_bucket { const void *_Nonnull key, *_Nonnull object; uint32_t hash; }; struct objc_hashtable { | | | < | 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 | struct objc_hashtable_bucket { const void *_Nonnull key, *_Nonnull object; uint32_t hash; }; struct objc_hashtable { objc_hashtable_hash_func hash; objc_hashtable_equal_func equal; uint32_t count, size; struct objc_hashtable_bucket *_Nonnull *_Nullable data; }; struct objc_sparsearray { struct objc_sparsearray_data { void *_Nullable next[256]; |
︙ | ︙ | |||
274 275 276 277 278 279 280 | extern void objc_register_all_classes(struct objc_symtab *_Nonnull); extern Class _Nullable objc_classname_to_class(const char *_Nonnull, bool); extern void objc_unregister_class(Class _Nonnull); extern void objc_unregister_all_classes(void); extern uint32_t objc_hash_string(const void *_Nonnull); extern bool objc_equal_string(const void *_Nonnull, const void *_Nonnull); extern struct objc_hashtable *_Nonnull objc_hashtable_new( | < | | 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 | extern void objc_register_all_classes(struct objc_symtab *_Nonnull); extern Class _Nullable objc_classname_to_class(const char *_Nonnull, bool); extern void objc_unregister_class(Class _Nonnull); extern void objc_unregister_all_classes(void); extern uint32_t objc_hash_string(const void *_Nonnull); extern bool objc_equal_string(const void *_Nonnull, const void *_Nonnull); extern struct objc_hashtable *_Nonnull objc_hashtable_new( objc_hashtable_hash_func, objc_hashtable_equal_func, uint32_t); extern struct objc_hashtable_bucket objc_deleted_bucket; extern void objc_hashtable_set(struct objc_hashtable *_Nonnull, const void *_Nonnull, const void *_Nonnull); extern void *_Nullable objc_hashtable_get(struct objc_hashtable *_Nonnull, const void *_Nonnull); extern void objc_hashtable_delete(struct objc_hashtable *_Nonnull, const void *_Nonnull); |
︙ | ︙ |