Index: Source/core/dom/shadow/ElementShadow.cpp |
diff --git a/Source/core/dom/shadow/ElementShadow.cpp b/Source/core/dom/shadow/ElementShadow.cpp |
index ba11a7035476768c2f723cc0defafba3f50454b5..8be13446f18645649efdd25a428a4ea025891357 100644 |
--- a/Source/core/dom/shadow/ElementShadow.cpp |
+++ b/Source/core/dom/shadow/ElementShadow.cpp |
@@ -135,7 +135,9 @@ ElementShadow::ElementShadow() |
ElementShadow::~ElementShadow() |
{ |
+#if !ENABLE(OILPAN) |
removeDetachedShadowRoots(); |
+#endif |
} |
ShadowRoot& ElementShadow::addShadowRoot(Element& shadowHost, ShadowRoot::ShadowRootType type) |
@@ -350,4 +352,12 @@ void ElementShadow::clearDistribution() |
root->setShadowInsertionPointOfYoungerShadowRoot(nullptr); |
} |
+void ElementShadow::trace(Visitor* visitor) |
+{ |
+ // 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. |
+ visitor->trace(m_shadowRoots.head()); |
+} |
+ |
} // namespace |