ObjFW  Diff

Differences From Artifact [8b51aa0f01]:

To Artifact [8504443dc5]:


102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
	struct objc_hashtable_bucket **data;
};

struct objc_sparsearray {
	struct objc_sparsearray_level2 *buckets[256];
};

#ifndef OF_SELUID16
struct objc_sparsearray_level2 {
	struct objc_sparsearray_level3 *buckets[256];
	BOOL empty;
};

struct objc_sparsearray_level3 {
	const void *buckets[256];







|







102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
	struct objc_hashtable_bucket **data;
};

struct objc_sparsearray {
	struct objc_sparsearray_level2 *buckets[256];
};

#ifdef OF_SELUID24
struct objc_sparsearray_level2 {
	struct objc_sparsearray_level3 *buckets[256];
	BOOL empty;
};

struct objc_sparsearray_level3 {
	const void *buckets[256];
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
extern void objc_global_mutex_lock(void);
extern void objc_global_mutex_unlock(void);
extern void objc_global_mutex_free(void);

static inline void*
objc_sparsearray_get(const struct objc_sparsearray *s, uint32_t idx)
{
#ifndef OF_SELUID16
	uint8_t i = idx >> 16;
	uint8_t j = idx >>  8;
	uint8_t k = idx;

	return (void*)s->buckets[i]->buckets[j]->buckets[k];
#else
	uint8_t i = idx >> 8;







|







158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
extern void objc_global_mutex_lock(void);
extern void objc_global_mutex_unlock(void);
extern void objc_global_mutex_free(void);

static inline void*
objc_sparsearray_get(const struct objc_sparsearray *s, uint32_t idx)
{
#ifdef OF_SELUID24
	uint8_t i = idx >> 16;
	uint8_t j = idx >>  8;
	uint8_t k = idx;

	return (void*)s->buckets[i]->buckets[j]->buckets[k];
#else
	uint8_t i = idx >> 8;