| Index: third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.cpp
|
| diff --git a/third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.cpp b/third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.cpp
|
| index 31aabc718b704256c7345ed3e26bcc5624004a43..0c967faf147f7ce459052e493b6807e36e6e1510 100644
|
| --- a/third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.cpp
|
| @@ -66,11 +66,12 @@ void ShadowTreeStyleSheetCollection::collectStyleSheets(StyleEngine& engine, Sty
|
|
|
| void ShadowTreeStyleSheetCollection::updateActiveStyleSheets(StyleEngine& engine, StyleResolverUpdateMode updateMode)
|
| {
|
| - StyleSheetCollection collection;
|
| - collectStyleSheets(engine, collection);
|
| + // StyleSheetCollection is GarbageCollected<>, allocate it on the heap.
|
| + StyleSheetCollection* collection = StyleSheetCollection::create();
|
| + collectStyleSheets(engine, *collection);
|
|
|
| StyleSheetChange change;
|
| - analyzeStyleSheetChange(updateMode, collection, change);
|
| + analyzeStyleSheetChange(updateMode, collection->activeAuthorStyleSheets(), change);
|
|
|
| if (StyleResolver* styleResolver = engine.resolver()) {
|
| if (change.styleResolverUpdateType != Additive) {
|
| @@ -78,15 +79,16 @@ void ShadowTreeStyleSheetCollection::updateActiveStyleSheets(StyleEngine& engine
|
| // In this case, we will reset rulesets created from style elements in the shadow tree.
|
| styleResolver->resetAuthorStyle(treeScope());
|
| styleResolver->removePendingAuthorStyleSheets(m_activeAuthorStyleSheets);
|
| - styleResolver->lazyAppendAuthorStyleSheets(0, collection.activeAuthorStyleSheets());
|
| + styleResolver->lazyAppendAuthorStyleSheets(0, collection->activeAuthorStyleSheets());
|
| } else {
|
| - styleResolver->lazyAppendAuthorStyleSheets(m_activeAuthorStyleSheets.size(), collection.activeAuthorStyleSheets());
|
| + styleResolver->lazyAppendAuthorStyleSheets(m_activeAuthorStyleSheets.size(), collection->activeAuthorStyleSheets());
|
| }
|
| }
|
| if (change.requiresFullStyleRecalc)
|
| toShadowRoot(treeScope().rootNode()).host().setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTracing::create(StyleChangeReason::ActiveStylesheetsUpdate));
|
|
|
| - collection.swap(*this);
|
| + collection->swap(*this);
|
| + collection->dispose();
|
| }
|
|
|
| } // namespace blink
|
|
|