Chromium Code Reviews| 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(); |