Lines Matching defs:obj

165     void AddToVector(PolyObject *obj, POLYUNSIGNED length);
195 void SortVector::AddToVector(PolyObject *obj, POLYUNSIGNED length)
197 obj->SetForwardingPtr(baseObject.objList);
198 baseObject.objList = obj;
222 struct { PolyObject *obj; PolyWord *base; } stack[RSTACK_SEGMENT_SIZE];
251 void PushToStack(PolyObject *obj, PolyWord *base);
252 void PopFromStack(PolyObject *&obj, PolyWord *&base);
267 PolyObject *RecursiveScanWithStack::ScanObjectAddress(PolyObject *obj)
269 PolyWord pWord = obj;
273 obj = pWord.AsObjPtr();
277 MarkAsScanning(obj);
278 if (obj->IsByteObject())
279 Completed(obj); // Don't need to put it on the stack
284 RecursiveScanWithStack::ScanAddressesInObject(obj, obj->LengthWord());
286 PushToStack(obj, (PolyWord*)obj);
289 return obj;
296 void RecursiveScanWithStack::ScanAddressesInObject(PolyObject *obj, POLYUNSIGNED lengthWord)
301 PolyWord *baseAddr = (PolyWord*)obj;
315 ScanAddress::ScanAddressesInObject(obj, lengthWord);
327 PolyWord *endWord = (PolyWord*)obj + length;
375 Completed(obj);
385 PushToStack(obj, restartFrom);
390 obj = firstWord;
391 baseAddr = (PolyWord*)obj;
396 PopFromStack(obj, baseAddr);
398 lengthWord = obj->LengthWord();
402 void RecursiveScanWithStack::PushToStack(PolyObject *obj, PolyWord *base)
424 stack->stack[stack->sp].obj = obj;
429 void RecursiveScanWithStack::PopFromStack(PolyObject *&obj, PolyWord *&base)
442 obj = stack->stack[stack->sp].obj;
455 virtual PolyObject *ScanObjectAddress(PolyObject *obj);
488 PolyObject *GetSharing::ScanObjectAddress(PolyObject *obj)
490 LocalMemSpace *sp = gMem.LocalSpaceForAddress((PolyWord*)obj - 1);
493 return obj;
495 return RecursiveScanWithStack::ScanObjectAddress(obj);
500 PolyObject *obj;
508 obj = p.AsObjPtr();
509 PolyWord *lengthWord = ((PolyWord*)obj) - 1;
518 if (obj->ContainsForwardingPtr())
520 obj = obj->GetForwardingPtr();
521 *pt = obj;
526 ASSERT(obj->ContainsNormalLengthWord());
529 totalSize += obj->Length() + 1;
534 void GetSharing::MarkAsScanning(PolyObject *obj)
536 ASSERT(obj->ContainsNormalLengthWord());
537 PolyWord *lengthWord = ((PolyWord*)obj) - 1;
543 void GetSharing::Completed(PolyObject *obj)
551 PolyWord *lengthWord = ((PolyWord*)obj) - 1;
555 POLYUNSIGNED L = obj->LengthWord();
562 POLYUNSIGNED length = obj->Length();
564 wordVectors[length].AddToVector(obj, length);
570 POLYUNSIGNED length = obj->Length();
572 byteVectors[length].AddToVector(obj, length);