Lines Matching defs:source
199 ObjectCache::ReturnObjectToSlab(slab* source, void* object, uint32 flags)
201 if (source == NULL) {
206 ParanoiaChecker _(source);
209 uint8* objectsStart = (uint8*)source->pages + source->offset;
211 || object >= objectsStart + source->size * object_size
221 object, link, source, source->size - source->count,
224 _push(source->free, link);
225 source->count++;
228 ADD_PARANOIA_CHECK(PARANOIA_SUSPICIOUS, source, &link->next, sizeof(void*));
230 if (source->count == source->size) {
231 partial.Remove(source);
234 && total_objects - used_count - source->size
237 empty.Add(source);
239 ReturnSlab(source, flags);
241 } else if (source->count == 1) {
242 full.Remove(source);
243 partial.Add(source);
249 ObjectCache::ObjectAtIndex(slab* source, int32 index) const
251 return (uint8*)source->pages + source->offset + index * object_size;
262 slab* source = ObjectSlab(object);
263 if (!partial.Contains(source) && !full.Contains(source)) {
270 for (object_link* freeLink = source->free; freeLink != NULL;
274 object, source, this);