| Index: runtime/vm/scavenger.cc
|
| diff --git a/runtime/vm/scavenger.cc b/runtime/vm/scavenger.cc
|
| index 8d6e4bf5be189dedb5a462cb1a672fb9afa992e9..17b95f229d2d999be1d9a65b9dfcc7108311d90a 100644
|
| --- a/runtime/vm/scavenger.cc
|
| +++ b/runtime/vm/scavenger.cc
|
| @@ -17,6 +17,7 @@
|
| #include "vm/verifier.h"
|
| #include "vm/visitor.h"
|
| #include "vm/weak_table.h"
|
| +#include "vm/object_id_ring.h"
|
|
|
| namespace dart {
|
|
|
| @@ -404,6 +405,14 @@ void Scavenger::IterateStoreBuffers(Isolate* isolate,
|
| }
|
|
|
|
|
| +void Scavenger::IterateObjectIdTable(Isolate* isolate,
|
| + ScavengerVisitor* visitor) {
|
| + ObjectIdRing* ring = isolate->object_id_ring();
|
| + ASSERT(ring != NULL);
|
| + ring->VisitPointers(visitor);
|
| +}
|
| +
|
| +
|
| void Scavenger::IterateRoots(Isolate* isolate,
|
| ScavengerVisitor* visitor,
|
| bool visit_prologue_weak_persistent_handles) {
|
| @@ -413,6 +422,7 @@ void Scavenger::IterateRoots(Isolate* isolate,
|
| StackFrameIterator::kDontValidateFrames);
|
| int64_t middle = OS::GetCurrentTimeMicros();
|
| IterateStoreBuffers(isolate, visitor);
|
| + IterateObjectIdTable(isolate, visitor);
|
| int64_t end = OS::GetCurrentTimeMicros();
|
| heap_->RecordTime(kVisitIsolateRoots, middle - start);
|
| heap_->RecordTime(kIterateStoreBuffers, end - middle);
|
|
|