Lines Matching refs:source
200 ObjectCache::ReturnObjectToSlab(slab* source, void* object, uint32 flags)
202 if (source == NULL) {
207 ParanoiaChecker _(source);
210 uint8* objectsStart = (uint8*)source->pages + source->offset;
212 || object >= objectsStart + source->size * object_size
222 object, link, source, source->size - source->count,
225 _push(source->free, link);
226 source->count++;
229 ADD_PARANOIA_CHECK(PARANOIA_SUSPICIOUS, source, &link->next, sizeof(void*));
231 if (source->count == source->size) {
232 partial.Remove(source);
235 && total_objects - used_count - source->size
238 empty.Add(source);
240 ReturnSlab(source, flags);
242 } else if (source->count == 1) {
243 full.Remove(source);
244 partial.Add(source);
250 ObjectCache::ObjectAtIndex(slab* source, int32 index) const
252 return (uint8*)source->pages + source->offset + index * object_size;
263 slab* source = ObjectSlab(object);
264 if (!partial.Contains(source) && !full.Contains(source)) {
271 for (object_link* freeLink = source->free; freeLink != NULL;
275 object, source, this);