Lines Matching defs:serialize

42     FcSerialize	*serialize;
44 serialize = malloc (sizeof (FcSerialize));
45 if (!serialize)
47 serialize->size = 0;
48 serialize->linear = NULL;
49 serialize->cs_freezer = NULL;
50 serialize->buckets = NULL;
51 serialize->buckets_count = 0;
52 serialize->buckets_used = 0;
53 serialize->buckets_used_max = 0;
54 return serialize;
58 FcSerializeDestroy (FcSerialize *serialize)
60 free (serialize->buckets);
61 if (serialize->cs_freezer)
62 FcCharSetFreezerDestroy (serialize->cs_freezer);
63 free (serialize);
67 FcSerializeNextBucketIndex (const FcSerialize *serialize, size_t index)
70 index = serialize->buckets_count;
118 FcSerializeFind (const FcSerialize *serialize, const void *object)
121 size_t buckets_count = serialize->buckets_count;
124 FcSerializeBucket* bucket = &serialize->buckets[index];
131 index = FcSerializeNextBucketIndex (serialize, index);
137 FcSerializeUncheckedSet (FcSerialize *serialize, FcSerializeBucket* insert) {
139 size_t buckets_count = serialize->buckets_count;
142 FcSerializeBucket* bucket = &serialize->buckets[index];
145 ++serialize->buckets_used;
154 index = FcSerializeNextBucketIndex (serialize, index);
161 FcSerializeResize (FcSerialize *serialize, size_t new_count)
163 size_t old_used = serialize->buckets_used;
164 size_t old_count = serialize->buckets_count;
165 FcSerializeBucket *old_buckets = serialize->buckets;
175 serialize->buckets = new_buckets;
176 serialize->buckets_count = new_count;
177 serialize->buckets_used = 0;
179 if (b->hash != 0 && !FcSerializeUncheckedSet (serialize, b))
181 serialize->buckets = old_buckets;
182 serialize->buckets_count = old_count;
183 serialize->buckets_used = old_used;
192 FcSerializeSet (FcSerialize *serialize, const void *object, intptr_t offset)
194 if (serialize->buckets_used >= serialize->buckets_used_max)
196 size_t capacity = serialize->buckets_count;
204 if (!FcSerializeResize (serialize, capacity))
207 serialize->buckets_used_max = capacity / 4u * 3u;
214 return FcSerializeUncheckedSet (serialize, &bucket);
222 FcSerializeAlloc (FcSerialize *serialize, const void *object, int size)
224 FcSerializeBucket *bucket = FcSerializeFind (serialize, object);
228 if (!FcSerializeSet (serialize, object, serialize->size))
231 serialize->size += FcAlignSize (size);
239 FcSerializeReserve (FcSerialize *serialize, int size)
241 intptr_t offset = serialize->size;
242 serialize->size += FcAlignSize (size);
251 FcSerializeOffset (FcSerialize *serialize, const void *object)
253 FcSerializeBucket *bucket = FcSerializeFind (serialize, object);
262 FcSerializePtr (FcSerialize *serialize, const void *object)
264 intptr_t offset = FcSerializeOffset (serialize, object);
268 return (void *) ((char *) serialize->linear + offset);
272 FcStrSerializeAlloc (FcSerialize *serialize, const FcChar8 *str)
274 return FcSerializeAlloc (serialize, str, strlen ((const char *) str) + 1);
278 FcStrSerialize (FcSerialize *serialize, const FcChar8 *str)
280 FcChar8 *str_serialize = FcSerializePtr (serialize, str);