Index: src/global-handles.cc |
diff --git a/src/global-handles.cc b/src/global-handles.cc |
index 650999f394c5cc7c2e5397afff53c74e3c186d20..f8299cf86a84b56f93026f1c7ac2cc21d99c306c 100644 |
--- a/src/global-handles.cc |
+++ b/src/global-handles.cc |
@@ -687,6 +687,19 @@ void GlobalHandles::IterateNewSpaceWeakIndependentRoots(ObjectVisitor* v) { |
} |
+void GlobalHandles::IterateNewSpaceWeakRoots(ObjectVisitor* v, |
+ WeakSlotCallback can_skip) { |
+ for (int i = 0; i < new_space_nodes_.length(); ++i) { |
+ Node* node = new_space_nodes_[i]; |
+ Object* object = node->object(); |
+ // If node->location is used instead of &object, import-expando-gc.html |
+ // fails |
+ if (node->IsWeak() && !can_skip(node->location())) |
+ v->VisitPointer(&object); // node->location()); |
+ } |
+} |
+ |
+ |
mythria
2015/09/21 09:54:23
Here, I think node->location() is correct. One of
jochen (gone - plz use gerrit)
2015/09/21 11:33:25
that's odd - object and *node->location() should b
rmcilroy
2015/09/21 11:44:15
One difference I can possibly think of is that Vis
jochen (gone - plz use gerrit)
2015/09/21 11:54:19
right, the visitor indeed updates the passed in lo
|
bool GlobalHandles::IterateObjectGroups(ObjectVisitor* v, |
WeakSlotCallbackWithHeap can_skip) { |
ComputeObjectGroupsAndImplicitReferences(); |