Index: Source/core/dom/shadow/ElementShadow.cpp |
diff --git a/Source/core/dom/shadow/ElementShadow.cpp b/Source/core/dom/shadow/ElementShadow.cpp |
index cece712f403eb17c319f79ff2a15ae507020ccdb..28e797b41c0a1c950deadf86865ec081f4a3858c 100644 |
--- a/Source/core/dom/shadow/ElementShadow.cpp |
+++ b/Source/core/dom/shadow/ElementShadow.cpp |
@@ -38,7 +38,8 @@ |
namespace WebCore { |
-class DistributionPool { |
+class DistributionPool FINAL { |
+ STACK_ALLOCATED(); |
public: |
explicit DistributionPool(const ContainerNode&); |
void clear(); |
@@ -48,7 +49,7 @@ public: |
private: |
void detachNonDistributedNodes(); |
- Vector<Node*, 32> m_nodes; |
+ WillBeHeapVector<RawPtrWillBeMember<Node>, 32> m_nodes; |
Vector<bool, 32> m_distributed; |
}; |
@@ -258,7 +259,7 @@ void ElementShadow::distribute() |
for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadowRoot()) { |
HTMLShadowElement* shadowInsertionPoint = 0; |
- const Vector<RefPtr<InsertionPoint> >& insertionPoints = root->descendantInsertionPoints(); |
+ const WillBeHeapVector<RefPtrWillBeMember<InsertionPoint> >& insertionPoints = root->descendantInsertionPoints(); |
for (size_t i = 0; i < insertionPoints.size(); ++i) { |
InsertionPoint* point = insertionPoints[i].get(); |
if (!point->isActive()) |
@@ -355,6 +356,7 @@ void ElementShadow::clearDistribution() |
void ElementShadow::trace(Visitor* visitor) |
{ |
+ visitor->trace(m_nodeToInsertionPoints); |
// Shadow roots are linked with previous and next pointers which are traced. |
// It is therefore enough to trace one of the shadow roots here and the |
// rest will be traced from there. |