Lines Matching refs:ref

477       mirror::Object* ref = *root;  in VisitRoots()  local
478 if (ref != nullptr) { in VisitRoots()
479 mirror::Object* to_ref = concurrent_copying_->Mark(self, ref); in VisitRoots()
480 if (to_ref != ref) { in VisitRoots()
495 mirror::Object* ref = root->AsMirrorPtr(); in VisitRoots() local
496 mirror::Object* to_ref = concurrent_copying_->Mark(self, ref); in VisitRoots()
497 if (to_ref != ref) { in VisitRoots()
590 void operator()(ObjPtr<mirror::Class> klass, ObjPtr<mirror::Reference> ref) const in operator ()()
593 CheckReference(ref->GetReferent<kWithoutReadBarrier>(), in operator ()()
594 ref, in operator ()()
615 void CheckReference(ObjPtr<mirror::Object> ref, in CheckReference() argument
619 if (ref != nullptr) { in CheckReference()
620 if (!collector_->immune_spaces_.ContainsObject(ref.Ptr())) { in CheckReference()
624 CHECK(large_object_space->Contains(ref.Ptr()) && in CheckReference()
625 large_object_space->IsZygoteLargeObject(Thread::Current(), ref.Ptr())) in CheckReference()
626 << "Non gray object references non immune, non zygote large object "<< ref << " " in CheckReference()
627 << mirror::Object::PrettyTypeOf(ref) << " in holder " << holder << " " in CheckReference()
632 ref->GetClass<kVerifyNone, kWithoutReadBarrier>())); in CheckReference()
674 ObjPtr<mirror::Reference> ref) const in operator ()()
677 this->operator()(ref, mirror::Reference::ReferentOffset(), false); in operator ()()
692 void CheckReference(mirror::Object* ref, int32_t offset = -1) const in CheckReference() argument
694 if (ref != nullptr && cc_->region_space_->IsInNewlyAllocatedRegion(ref)) { in CheckReference()
697 << ref->PrettyTypeOf() << "(" << ref << ") in newly allocated region at offset=" << offset; in CheckReference()
701 LOG(FATAL_WITHOUT_ABORT) << cc_->DumpReferenceInfo(ref, "ref", kIndent); in CheckReference()
922 mirror::Object* ref = *root; in VisitRoots() local
923 if (ref != nullptr && !collector_->TestAndSetMarkBitForRef<kAtomicTestAndSet>(ref)) { in VisitRoots()
924 collector_->PushOntoMarkStack(self_, ref); in VisitRoots()
936 mirror::Object* ref = root->AsMirrorPtr(); in VisitRoots() local
937 if (!collector_->TestAndSetMarkBitForRef<kAtomicTestAndSet>(ref)) { in VisitRoots()
938 collector_->PushOntoMarkStack(self_, ref); in VisitRoots()
1057 void operator()(ObjPtr<mirror::Class> klass, ObjPtr<mirror::Reference> ref) const in operator ()()
1067 && ref->AsReference()->GetReferent<kWithoutReadBarrier>() != nullptr) { in operator ()()
1091 void CheckReference(mirror::Object* ref) const in CheckReference()
1093 if (ref == nullptr) { in CheckReference()
1097 if (!collector_->TestAndSetMarkBitForRef(ref)) { in CheckReference()
1098 collector_->PushOntoLocalMarkStack(ref); in CheckReference()
1101 size_t ref_region_idx = collector_->RegionSpace()->RegionIdxForRef(ref); in CheckReference()
1116 void ConcurrentCopying::AddLiveBytesAndScanRef(mirror::Object* ref) { in AddLiveBytesAndScanRef() argument
1117 DCHECK(ref != nullptr); in AddLiveBytesAndScanRef()
1118 DCHECK(!immune_spaces_.ContainsObject(ref)); in AddLiveBytesAndScanRef()
1119 DCHECK(TestMarkBitmapForRef(ref)); in AddLiveBytesAndScanRef()
1121 if (LIKELY(region_space_->HasAddress(ref))) { in AddLiveBytesAndScanRef()
1122 obj_region_idx = region_space_->RegionIdxForRefUnchecked(ref); in AddLiveBytesAndScanRef()
1127 size_t obj_size = ref->SizeOf<kDefaultVerifyFlags>(); in AddLiveBytesAndScanRef()
1129 region_space_->AddLiveBytes(ref, alloc_size); in AddLiveBytesAndScanRef()
1134 ref->VisitReferences</*kVisitNativeRoots=*/ true, kDefaultVerifyFlags, kWithoutReadBarrier>( in AddLiveBytesAndScanRef()
1145 DCHECK(heap_->non_moving_space_->HasAddress(ref)); in AddLiveBytesAndScanRef()
1146 non_moving_space_inter_region_bitmap_.Set(ref); in AddLiveBytesAndScanRef()
1148 region_space_inter_region_bitmap_.Set(ref); in AddLiveBytesAndScanRef()
1154 bool ConcurrentCopying::TestAndSetMarkBitForRef(mirror::Object* ref) { in TestAndSetMarkBitForRef() argument
1157 if (LIKELY(region_space_->HasAddress(ref))) { in TestAndSetMarkBitForRef()
1159 } else if (heap_->GetNonMovingSpace()->HasAddress(ref)) { in TestAndSetMarkBitForRef()
1161 } else if (immune_spaces_.ContainsObject(ref)) { in TestAndSetMarkBitForRef()
1163 DCHECK(heap_mark_bitmap_->GetContinuousSpaceBitmap(ref)->Test(ref)); in TestAndSetMarkBitForRef()
1168 && (!IsAligned<kPageSize>(ref) || heap_->GetLargeObjectsSpace() == nullptr)) { in TestAndSetMarkBitForRef()
1173 ref, in TestAndSetMarkBitForRef()
1179 return (bitmap != nullptr) ? bitmap->AtomicTestAndSet(ref) : los_bitmap->AtomicTestAndSet(ref); in TestAndSetMarkBitForRef()
1181 return (bitmap != nullptr) ? bitmap->Set(ref) : los_bitmap->Set(ref); in TestAndSetMarkBitForRef()
1185 bool ConcurrentCopying::TestMarkBitmapForRef(mirror::Object* ref) { in TestMarkBitmapForRef() argument
1186 if (LIKELY(region_space_->HasAddress(ref))) { in TestMarkBitmapForRef()
1187 return region_space_bitmap_->Test(ref); in TestMarkBitmapForRef()
1188 } else if (heap_->GetNonMovingSpace()->HasAddress(ref)) { in TestMarkBitmapForRef()
1189 return heap_->GetNonMovingSpace()->GetMarkBitmap()->Test(ref); in TestMarkBitmapForRef()
1190 } else if (immune_spaces_.ContainsObject(ref)) { in TestMarkBitmapForRef()
1192 DCHECK(heap_mark_bitmap_->GetContinuousSpaceBitmap(ref)->Test(ref)); in TestMarkBitmapForRef()
1197 && (!IsAligned<kPageSize>(ref) || heap_->GetLargeObjectsSpace() == nullptr)) { in TestMarkBitmapForRef()
1202 ref, in TestMarkBitmapForRef()
1205 return heap_->GetLargeObjectsSpace()->GetMarkBitmap()->Test(ref); in TestMarkBitmapForRef()
1209 void ConcurrentCopying::PushOntoLocalMarkStack(mirror::Object* ref) { in PushOntoLocalMarkStack() argument
1219 gc_mark_stack_->PushBack(ref); in PushOntoLocalMarkStack()
1226 [this] (mirror::Object* ref) in ProcessMarkStackForMarkingAndComputeLiveBytes()
1228 AddLiveBytesAndScanRef(ref); in ProcessMarkStackForMarkingAndComputeLiveBytes()
1237 mirror::Object* ref = gc_mark_stack_->PopBack(); in ProcessMarkStackForMarkingAndComputeLiveBytes() local
1238 AddLiveBytesAndScanRef(ref); in ProcessMarkStackForMarkingAndComputeLiveBytes()
1752 for (auto& ref : temp) { in ExpandGcMarkStack() local
1753 gc_mark_stack_->PushBack(ref.AsMirrorPtr()); in ExpandGcMarkStack()
1839 void operator()(mirror::Object* ref, in operator ()() argument
1843 if (ref == nullptr) { in operator ()()
1847 collector_->AssertToSpaceInvariant(holder, offset, ref); in operator ()()
1849 CHECK_EQ(ref->GetReadBarrierState(), ReadBarrier::NonGrayState()) in operator ()()
1850 << "Ref " << ref << " " << ref->PrettyTypeOf() << " has gray rb_state"; in operator ()()
1873 mirror::Object* ref = in operator ()() local
1876 visitor(ref, offset, obj.Ptr()); in operator ()()
1879 ObjPtr<mirror::Reference> ref) const in operator ()()
1882 this->operator()(ref, mirror::Reference::ReferentOffset(), false); in operator ()()
1968 mirror::Object* ref = in operator ()() local
1970 collector_->AssertToSpaceInvariant(obj.Ptr(), offset, ref); in operator ()()
1972 void operator()(ObjPtr<mirror::Class> klass, ObjPtr<mirror::Reference> ref ATTRIBUTE_UNUSED) const in operator ()()
1986 mirror::Object* ref = root->AsMirrorPtr(); in VisitRoot() local
1987 collector_->AssertToSpaceInvariant(/* obj */ nullptr, MemberOffset(0), ref); in VisitRoot()
2052 [this] (mirror::Object* ref) in ProcessMarkStackOnce()
2054 ProcessMarkStackRef(ref); in ProcessMarkStackOnce()
2087 for (mirror::Object* ref : refs) { in ProcessMarkStackOnce()
2088 ProcessMarkStackRef(ref); in ProcessMarkStackOnce()
2339 [this] (mirror::Object* ref) in SwitchToSharedMarkStackMode()
2341 ProcessMarkStackRef(ref); in SwitchToSharedMarkStackMode()
2741 std::string ConcurrentCopying::DumpReferenceInfo(mirror::Object* ref, in DumpReferenceInfo() argument
2745 oss << indent << heap_->GetVerification()->DumpObjectInfo(ref, ref_name) << '\n'; in DumpReferenceInfo()
2746 if (ref != nullptr) { in DumpReferenceInfo()
2748 oss << indent << ref_name << "->GetMarkBit()=" << ref->GetMarkBit() << '\n'; in DumpReferenceInfo()
2749 oss << indent << ref_name << "->GetReadBarrierState()=" << ref->GetReadBarrierState() << '\n'; in DumpReferenceInfo()
2752 if (region_space_->HasAddress(ref)) { in DumpReferenceInfo()
2754 region_space_->DumpRegionForObject(oss, ref); in DumpReferenceInfo()
2757 << std::boolalpha << region_space_bitmap_->Test(ref) << std::noboolalpha; in DumpReferenceInfo()
2765 mirror::Object* ref) { in DumpHeapReference() argument
2768 oss << kIndent << "Invalid reference: ref=" << ref in DumpHeapReference()
2773 oss << DumpReferenceInfo(ref, "ref", kIndent); in DumpHeapReference()
2779 mirror::Object* ref) { in AssertToSpaceInvariant() argument
2782 if (ref == nullptr) { in AssertToSpaceInvariant()
2785 } else if (region_space_->HasAddress(ref)) { in AssertToSpaceInvariant()
2788 space::RegionSpace::RegionType type = region_space_->GetRegionTypeUnsafe(ref); in AssertToSpaceInvariant()
2793 if (!IsMarkedInUnevacFromSpace(ref)) { in AssertToSpaceInvariant()
2797 LOG(FATAL_WITHOUT_ABORT) << DumpHeapReference(obj, offset, ref); in AssertToSpaceInvariant()
2800 CHECK(IsMarkedInUnevacFromSpace(ref)) << ref; in AssertToSpaceInvariant()
2810 LOG(FATAL_WITHOUT_ABORT) << DumpHeapReference(obj, offset, ref); in AssertToSpaceInvariant()
2835 ref->GetLockWord(false).Dump(LOG_STREAM(FATAL_WITHOUT_ABORT)); in AssertToSpaceInvariant()
2840 LOG(FATAL) << "Invalid reference " << ref in AssertToSpaceInvariant()
2845 AssertToSpaceInvariantInNonMovingSpace(obj, ref); in AssertToSpaceInvariant()
2875 std::string ConcurrentCopying::DumpGcRoot(mirror::Object* ref) { in DumpGcRoot() argument
2878 oss << kIndent << "Invalid GC root: ref=" << ref << '\n'; in DumpGcRoot()
2880 oss << DumpReferenceInfo(ref, "ref", kIndent); in DumpGcRoot()
2885 mirror::Object* ref) { in AssertToSpaceInvariant() argument
2888 if (ref == nullptr) { in AssertToSpaceInvariant()
2891 } else if (region_space_->HasAddress(ref)) { in AssertToSpaceInvariant()
2894 space::RegionSpace::RegionType type = region_space_->GetRegionTypeUnsafe(ref); in AssertToSpaceInvariant()
2899 if (!IsMarkedInUnevacFromSpace(ref)) { in AssertToSpaceInvariant()
2903 LOG(FATAL_WITHOUT_ABORT) << DumpGcRoot(ref); in AssertToSpaceInvariant()
2905 CHECK(IsMarkedInUnevacFromSpace(ref)) << ref; in AssertToSpaceInvariant()
2915 LOG(FATAL_WITHOUT_ABORT) << DumpGcRoot(ref); in AssertToSpaceInvariant()
2931 ref->GetLockWord(false).Dump(LOG_STREAM(FATAL_WITHOUT_ABORT)); in AssertToSpaceInvariant()
2936 LOG(FATAL) << "Invalid reference " << ref; in AssertToSpaceInvariant()
2940 AssertToSpaceInvariantInNonMovingSpace(/* obj= */ nullptr, ref); in AssertToSpaceInvariant()
3020 mirror::Object* ref) { in AssertToSpaceInvariantInNonMovingSpace() argument
3021 CHECK(ref != nullptr); in AssertToSpaceInvariantInNonMovingSpace()
3022 CHECK(!region_space_->HasAddress(ref)) << "obj=" << obj << " ref=" << ref; in AssertToSpaceInvariantInNonMovingSpace()
3024 if (immune_spaces_.ContainsObject(ref)) { in AssertToSpaceInvariantInNonMovingSpace()
3032 CHECK(updated_all_immune_objects || ref->GetReadBarrierState() == ReadBarrier::GrayState()) in AssertToSpaceInvariantInNonMovingSpace()
3035 << " ref=" << ref << " ref rb_state=" << ref->GetReadBarrierState() in AssertToSpaceInvariantInNonMovingSpace()
3043 CHECK(IsMarkedInNonMovingSpace(ref)) in AssertToSpaceInvariantInNonMovingSpace()
3046 << " ref=" << ref in AssertToSpaceInvariantInNonMovingSpace()
3047 << " rb_state=" << ref->GetReadBarrierState() in AssertToSpaceInvariantInNonMovingSpace()
3072 void operator()(ObjPtr<mirror::Class> klass, ObjPtr<mirror::Reference> ref) const in operator ()()
3075 collector_->DelayReferenceReferent(klass, ref); in operator ()()
3123 mirror::Object* ref = obj->GetFieldObject< in Process() local
3127 ref, in Process()
3130 if (to_ref == ref) { in Process()
3134 mirror::Object* expected_ref = ref; in Process()
3157 mirror::Object* ref = *root; in VisitRoots() local
3158 mirror::Object* to_ref = Mark(self, ref); in VisitRoots()
3159 if (to_ref == ref) { in VisitRoots()
3163 mirror::Object* expected_ref = ref; in VisitRoots()
3178 mirror::Object* const ref = root->AsMirrorPtr(); in MarkRoot() local
3179 mirror::Object* to_ref = Mark<kGrayImmuneObject>(self, ref); in MarkRoot()
3180 if (to_ref != ref) { in MarkRoot()
3182 auto expected_ref = mirror::CompressedReference<mirror::Object>::FromMirrorPtr(ref); in MarkRoot()
3186 if (ref != addr->load(std::memory_order_relaxed).AsMirrorPtr()) { in MarkRoot()
3558 bool ConcurrentCopying::IsOnAllocStack(mirror::Object* ref) { in IsOnAllocStack() argument
3562 return alloc_stack->Contains(ref); in IsOnAllocStack()
3566 mirror::Object* ref, in MarkNonMoving() argument
3570 DCHECK(!region_space_->HasAddress(ref)) << ref; in MarkNonMoving()
3571 DCHECK(!immune_spaces_.ContainsObject(ref)); in MarkNonMoving()
3575 const bool is_los = !mark_bitmap->HasAddress(ref); in MarkNonMoving()
3577 if (!IsAligned<kPageSize>(ref)) { in MarkNonMoving()
3583 heap_->GetVerification()->LogHeapCorruption(holder, offset, ref, /* fatal= */ true); in MarkNonMoving()
3586 << "ref=" << ref in MarkNonMoving()
3589 DCHECK(los_bitmap->HasAddress(ref)); in MarkNonMoving()
3604 if (!IsOnAllocStack(ref) && in MarkNonMoving()
3605 ref->AtomicSetReadBarrierState(ReadBarrier::NonGrayState(), ReadBarrier::GrayState())) { in MarkNonMoving()
3610 PushOntoMarkStack(self, ref); in MarkNonMoving()
3612 return ref; in MarkNonMoving()
3615 if (!is_los && mark_bitmap->Test(ref)) { in MarkNonMoving()
3617 } else if (is_los && los_bitmap->Test(ref)) { in MarkNonMoving()
3619 } else if (IsOnAllocStack(ref)) { in MarkNonMoving()
3623 DCHECK(!mark_bitmap->Test(ref)); in MarkNonMoving()
3625 DCHECK(!los_bitmap->Test(ref)); in MarkNonMoving()
3628 DCHECK_EQ(ref->GetReadBarrierState(), ReadBarrier::NonGrayState()); in MarkNonMoving()
3635 success = ref->AtomicSetReadBarrierState(ReadBarrier::NonGrayState(), in MarkNonMoving()
3639 !los_bitmap->AtomicTestAndSet(ref) : in MarkNonMoving()
3640 !mark_bitmap->AtomicTestAndSet(ref); in MarkNonMoving()
3644 DCHECK_EQ(ref->GetReadBarrierState(), ReadBarrier::GrayState()); in MarkNonMoving()
3646 PushOntoMarkStack(self, ref); in MarkNonMoving()
3649 return ref; in MarkNonMoving()