59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
for (i = 0; i < 256; i++)
s->buckets[i] = empty_level2;
return s;
}
struct objc_sparsearray*
objc_sparsearray_copy(struct objc_sparsearray *src)
{
struct objc_sparsearray *dst;
size_t i, j, k;
uint32_t idx;
dst = objc_sparsearray_new();
for (i = 0; i < 256; i++) {
if (src->buckets[i]->empty)
continue;
for (j = 0; j < 256; j++) {
if (src->buckets[i]->buckets[j]->empty)
continue;
|
>
|
|
<
<
<
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
for (i = 0; i < 256; i++)
s->buckets[i] = empty_level2;
return s;
}
void
objc_sparsearray_copy(struct objc_sparsearray *dst,
struct objc_sparsearray *src)
{
size_t i, j, k;
uint32_t idx;
for (i = 0; i < 256; i++) {
if (src->buckets[i]->empty)
continue;
for (j = 0; j < 256; j++) {
if (src->buckets[i]->buckets[j]->empty)
continue;
|
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
continue;
idx = (i << 16) | (j << 8) | k;
objc_sparsearray_set(dst, idx, obj);
}
}
}
return dst;
}
void
objc_sparsearray_set(struct objc_sparsearray *s, uint32_t idx, const void *obj)
{
uint8_t i = idx >> 16;
uint8_t j = idx >> 8;
|
<
<
|
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
continue;
idx = (i << 16) | (j << 8) | k;
objc_sparsearray_set(dst, idx, obj);
}
}
}
}
void
objc_sparsearray_set(struct objc_sparsearray *s, uint32_t idx, const void *obj)
{
uint8_t i = idx >> 16;
uint8_t j = idx >> 8;
|