Lines Matching refs:ref

34 void ReferenceQueue::AtomicEnqueueIfNotEnqueued(Thread* self, ObjPtr<mirror::Reference> ref) {  in AtomicEnqueueIfNotEnqueued()  argument
35 DCHECK(ref != nullptr); in AtomicEnqueueIfNotEnqueued()
37 if (ref->IsUnprocessed()) { in AtomicEnqueueIfNotEnqueued()
38 EnqueueReference(ref); in AtomicEnqueueIfNotEnqueued()
42 void ReferenceQueue::EnqueueReference(ObjPtr<mirror::Reference> ref) { in EnqueueReference() argument
43 DCHECK(ref != nullptr); in EnqueueReference()
44 CHECK(ref->IsUnprocessed()); in EnqueueReference()
47 list_ = ref.Ptr(); in EnqueueReference()
53 ref->SetPendingNext(head); in EnqueueReference()
56 list_->SetPendingNext(ref); in EnqueueReference()
61 ObjPtr<mirror::Reference> ref = list_->GetPendingNext<kWithoutReadBarrier>(); in DequeuePendingReference() local
62 DCHECK(ref != nullptr); in DequeuePendingReference()
65 if (list_ == ref) { in DequeuePendingReference()
68 ObjPtr<mirror::Reference> next = ref->GetPendingNext<kWithoutReadBarrier>(); in DequeuePendingReference()
71 ref->SetPendingNext(nullptr); in DequeuePendingReference()
72 return ref; in DequeuePendingReference()
76 void ReferenceQueue::DisableReadBarrierForReference(ObjPtr<mirror::Reference> ref) { in DisableReadBarrierForReference() argument
83 CHECK(ref != nullptr); in DisableReadBarrierForReference()
85 uint32_t rb_state = ref->GetReadBarrierState(); in DisableReadBarrierForReference()
87 ref->AtomicSetReadBarrierState(ReadBarrier::GrayState(), ReadBarrier::NonGrayState()); in DisableReadBarrierForReference()
88 CHECK_EQ(ref->GetReadBarrierState(), ReadBarrier::NonGrayState()); in DisableReadBarrierForReference()
92 CHECK_EQ(rb_state, ReadBarrier::NonGrayState()) << "ref=" << ref << " rb_state=" << rb_state; in DisableReadBarrierForReference()
93 ObjPtr<mirror::Object> referent = ref->GetReferent<kWithoutReadBarrier>(); in DisableReadBarrierForReference()
97 << "ref=" << ref << " rb_state=" << ref->GetReadBarrierState() in DisableReadBarrierForReference()
136 ObjPtr<mirror::Reference> ref = DequeuePendingReference(); in ClearWhiteReferences() local
137 mirror::HeapReference<mirror::Object>* referent_addr = ref->GetReferentReferenceAddr(); in ClearWhiteReferences()
143 ref->ClearReferent<true>(); in ClearWhiteReferences()
145 ref->ClearReferent<false>(); in ClearWhiteReferences()
147 cleared_references->EnqueueReference(ref); in ClearWhiteReferences()
151 DisableReadBarrierForReference(ref); in ClearWhiteReferences()
158 ObjPtr<mirror::FinalizerReference> ref = DequeuePendingReference()->AsFinalizerReference(); in EnqueueFinalizerReferences() local
159 mirror::HeapReference<mirror::Object>* referent_addr = ref->GetReferentReferenceAddr(); in EnqueueFinalizerReferences()
166 ref->SetZombie<true>(forward_address); in EnqueueFinalizerReferences()
167 ref->ClearReferent<true>(); in EnqueueFinalizerReferences()
169 ref->SetZombie<false>(forward_address); in EnqueueFinalizerReferences()
170 ref->ClearReferent<false>(); in EnqueueFinalizerReferences()
172 cleared_references->EnqueueReference(ref); in EnqueueFinalizerReferences()
176 DisableReadBarrierForReference(ref->AsReference()); in EnqueueFinalizerReferences()
185 ObjPtr<mirror::Reference> ref = head; in ForwardSoftReferences() local
187 mirror::HeapReference<mirror::Object>* referent_addr = ref->GetReferentReferenceAddr(); in ForwardSoftReferences()
193 ref = ref->GetPendingNext(); in ForwardSoftReferences()
194 } while (LIKELY(ref != head)); in ForwardSoftReferences()