Home | History | Annotate | Download | only in gc

Lines Matching full:reference

20 #include "mirror/reference.h"
21 #include "mirror/reference-inl.h"
34 condition_("reference processor condition", *Locks::reference_processor_lock_) ,
43 mirror::Reference::GetJavaLangRefReference()->SetSlowPath(true);
47 mirror::Reference::GetJavaLangRefReference()->SetSlowPath(false);
51 mirror::Object* ReferenceProcessor::GetReferent(Thread* self, mirror::Reference* reference) {
52 mirror::Object* const referent = reference->GetReferent();
54 // scenario where it becomes non-null during the reference processing phase.
61 reference->GetReferentReferenceAddr();
80 (LIKELY(!reference->IsFinalizerReferenceInstance()) && !reference->IsEnqueued())) {
87 return reference->GetReferent();
112 // Process reference class instances and schedule finalizations.
164 // At this point all reference queues other than the cleared references should be empty.
172 // could result in a stale is_marked_callback_ being called before the reference processing
183 // Process the "referent" field in a java.lang.ref.Reference. If the referent has not yet been
185 void ReferenceProcessor::DelayReferenceReferent(mirror::Class* klass, mirror::Reference* ref,
196 // scanning the same reference multiple times due to dirty cards.
206 LOG(FATAL) << "Invalid reference type " << PrettyClass(klass) << " " << std::hex
219 // When a runtime isn't started there are no reference queues to care about so ignore.
232 bool ReferenceProcessor::MakeCircularListIfUnenqueued(mirror::FinalizerReference* reference) {
235 // Wait untul we are done processing reference.
239 // At this point, since the sentinel of the reference is live, it is guaranteed to not be
241 // phase. Since we are holding the reference processor lock, it guarantees that reference
242 // processing can't begin. The GC could have just enqueued the reference one one of the internal
246 if (!reference->IsEnqueued()) {
247 CHECK(reference->IsFinalizerReferenceInstance());
249 reference->SetPendingNext<true>(reference);
251 reference->SetPendingNext<false>(reference);