Differences From Artifact [2f6309b70c]:
- File
src/runtime/class.m
— part of check-in
[2a27cf3000]
at
2016-01-03 00:41:26
on branch trunk
— Update copyright
While at it, also update the mail address. (user: js, size: 18140) [annotate] [blame] [check-ins using] [more...]
To Artifact [ecd4869918]:
- File
src/runtime/class.m
— part of check-in
[d3158d091f]
at
2016-01-05 22:00:03
on branch trunk
— (u)int_fast*_t -> (u)int*_t
(U)INT_FAST*_MAX is broken on Android, which makes (u)int_fast*_t
dangerous to use while it does not provide any real speed benefit. (user: js, size: 18120) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
366 367 368 369 370 371 372 | objc_global_mutex_unlock(); } void objc_register_all_classes(struct objc_abi_symtab *symtab) { | | | 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 | objc_global_mutex_unlock(); } void objc_register_all_classes(struct objc_abi_symtab *symtab) { uint32_t i; for (i = 0; i < symtab->cls_def_cnt; i++) { struct objc_abi_class *cls = (struct objc_abi_class*)symtab->defs[i]; register_class(cls); register_selectors(cls); |
︙ | ︙ | |||
838 839 840 841 842 843 844 | unregister_class(cls); unregister_class(cls->isa); } void objc_unregister_all_classes(void) { | | | | | | 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 | unregister_class(cls); unregister_class(cls->isa); } void objc_unregister_all_classes(void) { uint32_t i; if (classes == NULL) return; for (i = 0; i < classes->size; i++) { if (classes->data[i] != NULL && classes->data[i] != &objc_deleted_bucket) { void *cls = (Class)classes->data[i]->obj; if (cls == Nil || (uintptr_t)cls & 1) continue; objc_unregister_class(cls); /* * The table might have been resized, so go back to the * start again. * * Due to the i++ in the for loop, we need to set it to * UINT32_MAX so that it will get increased at the end * of the loop and thus become 0. */ i = UINT32_MAX; } } assert(classes_cnt == 0); if (empty_dtable != NULL) { objc_dtable_free(empty_dtable); |
︙ | ︙ |