Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2478)

Unified Diff: runtime/vm/scavenger.cc

Issue 2908353002: Nonvirtual pointer visitor in GCs (Closed)
Patch Set: Separated user-defined classes case so it can be inlined Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« runtime/vm/raw_object.h ('K') | « runtime/vm/raw_object.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/scavenger.cc
diff --git a/runtime/vm/scavenger.cc b/runtime/vm/scavenger.cc
index b6d15f758a5dd162cf3e687c48144d3a83ddc589..2309e6ca2aa3bb5c5b08cdf062cc4556206060b5 100644
--- a/runtime/vm/scavenger.cc
+++ b/runtime/vm/scavenger.cc
@@ -469,7 +469,7 @@ void Scavenger::IterateStoreBuffers(Isolate* isolate,
ASSERT(raw_object->IsRemembered());
raw_object->ClearRememberedBit();
visitor->VisitingOldObject(raw_object);
- raw_object->VisitPointers(visitor);
+ raw_object->VisitPointersNonvirtual(visitor);
}
pending->Reset();
// Return the emptied block for recycling (no need to check threshold).
@@ -550,7 +550,7 @@ void Scavenger::ProcessToSpace(ScavengerVisitor* visitor) {
RawObject* raw_obj = RawObject::FromAddr(resolved_top_);
intptr_t class_id = raw_obj->GetClassId();
if (class_id != kWeakPropertyCid) {
- resolved_top_ += raw_obj->VisitPointers(visitor);
+ resolved_top_ += raw_obj->VisitPointersNonvirtual(visitor);
} else {
RawWeakProperty* raw_weak = reinterpret_cast<RawWeakProperty*>(raw_obj);
resolved_top_ += ProcessWeakProperty(raw_weak, visitor);
@@ -566,7 +566,7 @@ void Scavenger::ProcessToSpace(ScavengerVisitor* visitor) {
// objects to be resolved in the to space.
ASSERT(!raw_object->IsRemembered());
visitor->VisitingOldObject(raw_object);
- raw_object->VisitPointers(visitor);
+ raw_object->VisitPointersNonvirtual(visitor);
}
visitor->VisitingOldObject(NULL);
}
@@ -593,7 +593,7 @@ void Scavenger::ProcessToSpace(ScavengerVisitor* visitor) {
// Reset the next pointer in the weak property.
cur_weak->ptr()->next_ = 0;
if (IsForwarding(header)) {
- cur_weak->VisitPointers(visitor);
+ cur_weak->VisitPointersNonvirtual(visitor);
erikcorry 2017/05/31 10:40:42 Probably not worth it.
} else {
EnqueueWeakProperty(cur_weak);
}
@@ -661,7 +661,7 @@ uword Scavenger::ProcessWeakProperty(RawWeakProperty* raw_weak,
}
}
// Key is gray or black. Make the weak property black.
- return raw_weak->VisitPointers(visitor);
+ return raw_weak->VisitPointersNonvirtual(visitor);
erikcorry 2017/05/31 10:40:42 Probably not worth it.
}
« runtime/vm/raw_object.h ('K') | « runtime/vm/raw_object.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698