Index: src/global-handles.cc |
diff --git a/src/global-handles.cc b/src/global-handles.cc |
index 67cff7b0f5d227500d25d85a2e0a1e0cd94c4e98..a96e8e377c00ba47347cac5b6794ce591e9991ef 100644 |
--- a/src/global-handles.cc |
+++ b/src/global-handles.cc |
@@ -8,6 +8,7 @@ |
#include "src/cancelable-task.h" |
#include "src/objects-inl.h" |
#include "src/v8.h" |
+#include "src/visitors.h" |
#include "src/vm-state-inl.h" |
namespace v8 { |
@@ -608,7 +609,7 @@ bool GlobalHandles::IsWeak(Object** location) { |
} |
DISABLE_CFI_PERF |
-void GlobalHandles::IterateWeakRoots(ObjectVisitor* v) { |
+void GlobalHandles::IterateWeakRoots(RootVisitor* v) { |
for (NodeIterator it(this); !it.done(); it.Advance()) { |
Node* node = it.node(); |
if (node->IsWeakRetainer()) { |
@@ -620,7 +621,7 @@ void GlobalHandles::IterateWeakRoots(ObjectVisitor* v) { |
node->CollectPhantomCallbackData(isolate(), |
&pending_phantom_callbacks_); |
} else { |
- v->VisitPointer(node->location()); |
+ v->VisitRootPointer(Root::kGlobalHandles, node->location()); |
} |
} |
} |
@@ -635,14 +636,13 @@ void GlobalHandles::IdentifyWeakHandles(WeakSlotCallback f) { |
} |
} |
- |
-void GlobalHandles::IterateNewSpaceStrongAndDependentRoots(ObjectVisitor* v) { |
+void GlobalHandles::IterateNewSpaceStrongAndDependentRoots(RootVisitor* v) { |
for (int i = 0; i < new_space_nodes_.length(); ++i) { |
Node* node = new_space_nodes_[i]; |
if (node->IsStrongRetainer() || |
(node->IsWeakRetainer() && !node->is_independent() && |
node->is_active())) { |
- v->VisitPointer(node->location()); |
+ v->VisitRootPointer(Root::kGlobalHandles, node->location()); |
} |
} |
} |
@@ -660,8 +660,7 @@ void GlobalHandles::IdentifyNewSpaceWeakIndependentHandles( |
} |
} |
- |
-void GlobalHandles::IterateNewSpaceWeakIndependentRoots(ObjectVisitor* v) { |
+void GlobalHandles::IterateNewSpaceWeakIndependentRoots(RootVisitor* v) { |
for (int i = 0; i < new_space_nodes_.length(); ++i) { |
Node* node = new_space_nodes_[i]; |
DCHECK(node->is_in_new_space_list()); |
@@ -674,7 +673,7 @@ void GlobalHandles::IterateNewSpaceWeakIndependentRoots(ObjectVisitor* v) { |
node->CollectPhantomCallbackData(isolate(), |
&pending_phantom_callbacks_); |
} else { |
- v->VisitPointer(node->location()); |
+ v->VisitRootPointer(Root::kGlobalHandles, node->location()); |
} |
} |
} |
@@ -705,7 +704,7 @@ void GlobalHandles::MarkNewSpaceWeakUnmodifiedObjectsPending( |
} |
template <GlobalHandles::IterationMode mode> |
-void GlobalHandles::IterateNewSpaceWeakUnmodifiedRoots(ObjectVisitor* v) { |
+void GlobalHandles::IterateNewSpaceWeakUnmodifiedRoots(RootVisitor* v) { |
for (int i = 0; i < new_space_nodes_.length(); ++i) { |
Node* node = new_space_nodes_[i]; |
DCHECK(node->is_in_new_space_list()); |
@@ -727,7 +726,7 @@ void GlobalHandles::IterateNewSpaceWeakUnmodifiedRoots(ObjectVisitor* v) { |
} else { |
if (mode == IterationMode::VISIT_OTHERS || |
mode == IterationMode::HANDLE_PHANTOM_NODES_VISIT_OTHERS) { |
- v->VisitPointer(node->location()); |
+ v->VisitRootPointer(Root::kGlobalHandles, node->location()); |
} |
} |
} |
@@ -735,13 +734,13 @@ void GlobalHandles::IterateNewSpaceWeakUnmodifiedRoots(ObjectVisitor* v) { |
} |
template void GlobalHandles::IterateNewSpaceWeakUnmodifiedRoots< |
- GlobalHandles::HANDLE_PHANTOM_NODES>(ObjectVisitor* v); |
+ GlobalHandles::HANDLE_PHANTOM_NODES>(RootVisitor* v); |
template void GlobalHandles::IterateNewSpaceWeakUnmodifiedRoots< |
- GlobalHandles::VISIT_OTHERS>(ObjectVisitor* v); |
+ GlobalHandles::VISIT_OTHERS>(RootVisitor* v); |
template void GlobalHandles::IterateNewSpaceWeakUnmodifiedRoots< |
- GlobalHandles::HANDLE_PHANTOM_NODES_VISIT_OTHERS>(ObjectVisitor* v); |
+ GlobalHandles::HANDLE_PHANTOM_NODES_VISIT_OTHERS>(RootVisitor* v); |
void GlobalHandles::InvokeSecondPassPhantomCallbacks( |
List<PendingPhantomCallback>* callbacks, Isolate* isolate) { |
@@ -928,21 +927,20 @@ int GlobalHandles::PostGarbageCollectionProcessing( |
return freed_nodes; |
} |
- |
-void GlobalHandles::IterateStrongRoots(ObjectVisitor* v) { |
+void GlobalHandles::IterateStrongRoots(RootVisitor* v) { |
for (NodeIterator it(this); !it.done(); it.Advance()) { |
if (it.node()->IsStrongRetainer()) { |
- v->VisitPointer(it.node()->location()); |
+ v->VisitRootPointer(Root::kGlobalHandles, it.node()->location()); |
} |
} |
} |
DISABLE_CFI_PERF |
-void GlobalHandles::IterateAllRoots(ObjectVisitor* v) { |
+void GlobalHandles::IterateAllRoots(RootVisitor* v) { |
for (NodeIterator it(this); !it.done(); it.Advance()) { |
if (it.node()->IsRetainer()) { |
- v->VisitPointer(it.node()->location()); |
+ v->VisitRootPointer(Root::kGlobalHandles, it.node()->location()); |
} |
} |
} |
@@ -1089,21 +1087,21 @@ EternalHandles::~EternalHandles() { |
for (int i = 0; i < blocks_.length(); i++) delete[] blocks_[i]; |
} |
- |
-void EternalHandles::IterateAllRoots(ObjectVisitor* visitor) { |
+void EternalHandles::IterateAllRoots(RootVisitor* visitor) { |
int limit = size_; |
for (int i = 0; i < blocks_.length(); i++) { |
DCHECK(limit > 0); |
Object** block = blocks_[i]; |
- visitor->VisitPointers(block, block + Min(limit, kSize)); |
+ visitor->VisitRootPointers(Root::kEternalHandles, block, |
+ block + Min(limit, kSize)); |
limit -= kSize; |
} |
} |
- |
-void EternalHandles::IterateNewSpaceRoots(ObjectVisitor* visitor) { |
+void EternalHandles::IterateNewSpaceRoots(RootVisitor* visitor) { |
for (int i = 0; i < new_space_indices_.length(); i++) { |
- visitor->VisitPointer(GetLocation(new_space_indices_[i])); |
+ visitor->VisitRootPointer(Root::kEternalHandles, |
+ GetLocation(new_space_indices_[i])); |
} |
} |