- case access_put_by_id_transition:
- u.putByIdTransition.previousStructure->deref();
- u.putByIdTransition.structure->deref();
- u.putByIdTransition.chain->deref();
- return;
+}
+
+bool StructureStubInfo::visitWeakReferences(RepatchBuffer& repatchBuffer)
+{
+ switch (accessType) {
+ case access_get_by_id_self:
+ if (!Heap::isMarked(u.getByIdSelf.baseObjectStructure.get()))
+ return false;
+ break;
+ case access_get_by_id_list: {
+ if (!u.getByIdList.list->visitWeak(repatchBuffer))
+ return false;
+ break;
+ }
+ case access_put_by_id_transition_normal:
+ case access_put_by_id_transition_direct:
+ if (!Heap::isMarked(u.putByIdTransition.previousStructure.get())
+ || !Heap::isMarked(u.putByIdTransition.structure.get())
+ || !Heap::isMarked(u.putByIdTransition.chain.get()))
+ return false;
+ break;