Lines Matching refs:ref

32 void ReferenceQueue::AtomicEnqueueIfNotEnqueued(Thread* self, mirror::Reference* ref) {
33 DCHECK(ref != nullptr);
35 if (ref->IsUnprocessed()) {
36 EnqueueReference(ref);
40 void ReferenceQueue::EnqueueReference(mirror::Reference* ref) {
41 DCHECK(ref != nullptr);
42 CHECK(ref->IsUnprocessed());
44 // 1 element cyclic queue, ie: Reference ref = ..; ref.pendingNext = ref;
45 list_ = ref;
49 ref->SetPendingNext(head);
52 list_->SetPendingNext(ref);
57 mirror::Reference* ref = list_->GetPendingNext();
58 DCHECK(ref != nullptr);
61 if (list_ == ref) {
64 mirror::Reference* next = ref->GetPendingNext();
67 ref->SetPendingNext(nullptr);
74 CHECK(ref != nullptr);
76 const bool is_moving = concurrent_copying->RegionSpace()->IsInToSpace(ref);
77 if (ref->GetReadBarrierPointer() == ReadBarrier::GrayPtr()) {
79 ref->AtomicSetReadBarrierPointer(ReadBarrier::GrayPtr(), ReadBarrier::WhitePtr());
80 CHECK_EQ(ref->GetReadBarrierPointer(), ReadBarrier::WhitePtr());
82 ref->AtomicSetReadBarrierPointer(ReadBarrier::GrayPtr(), ReadBarrier::BlackPtr());
83 CHECK_EQ(ref->GetReadBarrierPointer(), ReadBarrier::BlackPtr());
90 CHECK_EQ(ref->GetReadBarrierPointer(), ReadBarrier::WhitePtr())
91 << "ref=" << ref << " rb_ptr=" << ref->GetReadBarrierPointer();
93 CHECK_EQ(ref->GetReadBarrierPointer(), ReadBarrier::BlackPtr())
94 << "ref=" << ref << " rb_ptr=" << ref->GetReadBarrierPointer();
96 mirror::Object* referent = ref->GetReferent<kWithoutReadBarrier>();
100 << "ref=" << ref << " rb_ptr=" << ref->GetReadBarrierPointer()
105 return ref;
140 mirror::Reference* ref = DequeuePendingReference();
141 mirror::HeapReference<mirror::Object>* referent_addr = ref->GetReferentReferenceAddr();
146 ref->ClearReferent<true>();
148 ref->ClearReferent<false>();
150 cleared_references->EnqueueReference(ref);
158 mirror::FinalizerReference* ref = DequeuePendingReference()->AsFinalizerReference();
159 mirror::HeapReference<mirror::Object>* referent_addr = ref->GetReferentReferenceAddr();
165 ref->SetZombie<true>(forward_address);
166 ref->ClearReferent<true>();
168 ref->SetZombie<false>(forward_address);
169 ref->ClearReferent<false>();
171 cleared_references->EnqueueReference(ref);
181 mirror::Reference* ref = head;
183 mirror::HeapReference<mirror::Object>* referent_addr = ref->GetReferentReferenceAddr();
187 ref = ref->GetPendingNext();
188 } while (LIKELY(ref != head));