Index: runtime/vm/object_graph.cc |
diff --git a/runtime/vm/object_graph.cc b/runtime/vm/object_graph.cc |
index 2352bd8890964f3b687cbf8ffd50e8eec8ce826b..605f25421c6f5f37e9f59804fd8c8801ea24a204 100644 |
--- a/runtime/vm/object_graph.cc |
+++ b/runtime/vm/object_graph.cc |
@@ -149,7 +149,7 @@ class Unmarker : public ObjectVisitor { |
static void UnmarkAll(Isolate* isolate) { |
Unmarker unmarker; |
- isolate->heap()->IterateObjects(&unmarker); |
+ isolate->heap()->VisitObjects(&unmarker); |
} |
private: |
@@ -161,19 +161,16 @@ ObjectGraph::ObjectGraph(Thread* thread) : StackResource(thread) { |
// The VM isolate has all its objects pre-marked, so iterating over it |
// would be a no-op. |
ASSERT(thread->isolate() != Dart::vm_isolate()); |
- thread->isolate()->heap()->WriteProtectCode(false); |
} |
-ObjectGraph::~ObjectGraph() { |
- isolate()->heap()->WriteProtectCode(true); |
-} |
+ObjectGraph::~ObjectGraph() {} |
void ObjectGraph::IterateObjects(ObjectGraph::Visitor* visitor) { |
NoSafepointScope no_safepoint_scope_; |
Stack stack(isolate()); |
- isolate()->IterateObjectPointers(&stack, false); |
+ isolate()->VisitObjectPointers(&stack, false); |
stack.TraverseGraph(visitor); |
Unmarker::UnmarkAll(isolate()); |
} |
@@ -216,7 +213,7 @@ void ObjectGraph::IterateObjectsFrom(intptr_t class_id, |
Stack stack(isolate()); |
InstanceAccumulator accumulator(&stack, class_id); |
- isolate()->heap()->IterateObjects(&accumulator); |
+ isolate()->heap()->VisitObjects(&accumulator); |
stack.TraverseGraph(visitor); |
Unmarker::UnmarkAll(isolate()); |
@@ -265,6 +262,7 @@ class SizeExcludingClassVisitor : public SizeVisitor { |
intptr_t ObjectGraph::SizeRetainedByInstance(const Object& obj) { |
+ HeapIterationScope iteration_scope(true); |
SizeVisitor total; |
IterateObjects(&total); |
intptr_t size_total = total.size(); |
@@ -276,6 +274,7 @@ intptr_t ObjectGraph::SizeRetainedByInstance(const Object& obj) { |
intptr_t ObjectGraph::SizeReachableByInstance(const Object& obj) { |
+ HeapIterationScope iteration_scope(true); |
SizeVisitor total; |
IterateObjectsFrom(obj, &total); |
return total.size(); |
@@ -283,6 +282,7 @@ intptr_t ObjectGraph::SizeReachableByInstance(const Object& obj) { |
intptr_t ObjectGraph::SizeRetainedByClass(intptr_t class_id) { |
+ HeapIterationScope iteration_scope(true); |
SizeVisitor total; |
IterateObjects(&total); |
intptr_t size_total = total.size(); |
@@ -294,6 +294,7 @@ intptr_t ObjectGraph::SizeRetainedByClass(intptr_t class_id) { |
intptr_t ObjectGraph::SizeReachableByClass(intptr_t class_id) { |
+ HeapIterationScope iteration_scope(true); |
SizeVisitor total; |
IterateObjectsFrom(class_id, &total); |
return total.size(); |
@@ -390,6 +391,7 @@ class RetainingPathVisitor : public ObjectGraph::Visitor { |
intptr_t ObjectGraph::RetainingPath(Object* obj, const Array& path) { |
NoSafepointScope no_safepoint_scope_; |
+ HeapIterationScope iteration_scope(true); |
// To break the trivial path, the handle 'obj' is temporarily cleared during |
// the search, but restored before returning. |
RawObject* raw = obj->raw(); |
@@ -467,7 +469,7 @@ class InboundReferencesVisitor : public ObjectVisitor, |
intptr_t ObjectGraph::InboundReferences(Object* obj, const Array& references) { |
Object& scratch = Object::Handle(); |
- NoSafepointScope no_safepoint_scope_; |
+ NoSafepointScope no_safepoint_scope; |
InboundReferencesVisitor visitor(isolate(), obj->raw(), references, &scratch); |
isolate()->heap()->IterateObjects(&visitor); |
return visitor.length(); |
@@ -611,6 +613,7 @@ intptr_t ObjectGraph::Serialize(WriteStream* stream, |
} |
// Current encoding assumes objects do not move, so promote everything to old. |
isolate()->heap()->new_space()->Evacuate(); |
+ HeapIterationScope iteration_scope(true); |
RawObject* kRootAddress = reinterpret_cast<RawObject*>(kHeapObjectTag); |
const intptr_t kRootCid = kIllegalCid; |
@@ -624,7 +627,7 @@ intptr_t ObjectGraph::Serialize(WriteStream* stream, |
// Write root "object". |
WriteHeader(kRootAddress, 0, kRootCid, stream); |
WritePointerVisitor ptr_writer(isolate(), stream, false); |
- isolate()->IterateObjectPointers(&ptr_writer, false); |
+ isolate()->VisitObjectPointers(&ptr_writer, false); |
stream->WriteUnsigned(0); |
} else { |
{ |
@@ -640,7 +643,7 @@ intptr_t ObjectGraph::Serialize(WriteStream* stream, |
// Write stack "object". |
WriteHeader(kStackAddress, 0, kStackCid, stream); |
WritePointerVisitor ptr_writer(isolate(), stream, true); |
- isolate()->IterateStackPointers(&ptr_writer, false); |
+ isolate()->VisitStackPointers(&ptr_writer, false); |
stream->WriteUnsigned(0); |
} |
} |