37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
static unsigned lookups_till_fast_path = 128;
static struct sparsearray *sparsearray = NULL;
static void
register_class(struct objc_abi_class *cls)
{
if (classes == NULL)
classes = objc_hashtable_new(2);
objc_hashtable_set(classes, cls->name, cls);
if (empty_dtable == NULL)
empty_dtable = objc_sparsearray_new();
cls->dtable = empty_dtable;
|
|
>
|
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
static unsigned lookups_till_fast_path = 128;
static struct sparsearray *sparsearray = NULL;
static void
register_class(struct objc_abi_class *cls)
{
if (classes == NULL)
classes = objc_hashtable_new(
objc_hash_string, objc_equal_string, 2);
objc_hashtable_set(classes, cls->name, cls);
if (empty_dtable == NULL)
empty_dtable = objc_sparsearray_new();
cls->dtable = empty_dtable;
|
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
|
if (buf == NULL)
return classes_cnt;
if (classes_cnt < count)
count = classes_cnt;
for (i = j = 0; i <= classes->last_idx; i++) {
Class cls;
if (j >= count) {
objc_global_mutex_unlock();
return j;
}
|
|
|
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
|
if (buf == NULL)
return classes_cnt;
if (classes_cnt < count)
count = classes_cnt;
for (i = j = 0; i < classes->size; i++) {
Class cls;
if (j >= count) {
objc_global_mutex_unlock();
return j;
}
|
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
|
objc_unregister_all_classes(void)
{
uint_fast32_t i;
if (classes == NULL)
return;
for (i = 0; i <= classes->last_idx; i++) {
if (classes->data[i] != NULL) {
Class cls = (Class)classes->data[i]->obj;
if (cls == Nil || (uintptr_t)cls & 1)
continue;
objc_unregister_class(cls);
|
|
|
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
|
objc_unregister_all_classes(void)
{
uint_fast32_t i;
if (classes == NULL)
return;
for (i = 0; i < classes->size; i++) {
if (classes->data[i] != NULL) {
Class cls = (Class)classes->data[i]->obj;
if (cls == Nil || (uintptr_t)cls & 1)
continue;
objc_unregister_class(cls);
|