Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1467)

Unified Diff: Source/core/paint/FilterPainter.cpp

Issue 1193433004: Blink-side contiguous allocation of display items. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Ready for review Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/paint/FilterPainter.cpp
diff --git a/Source/core/paint/FilterPainter.cpp b/Source/core/paint/FilterPainter.cpp
index 3ef7321b7d501cab974dfcbe821b4e43aef8b0a6..2a6014281db9a95c13c17b17a9e007448cd4b729 100644
--- a/Source/core/paint/FilterPainter.cpp
+++ b/Source/core/paint/FilterPainter.cpp
@@ -63,14 +63,12 @@ FilterPainter::FilterPainter(DeprecatedPaintLayer& layer, GraphicsContext* conte
FilterOperations filterOperations(layer.computeFilterOperations(m_layoutObject->styleRef()));
OwnPtr<WebFilterOperations> webFilterOperations = adoptPtr(Platform::current()->compositorSupport()->createFilterOperations());
builder.buildFilterOperations(filterOperations, webFilterOperations.get());
- OwnPtr<BeginFilterDisplayItem> filterDisplayItem = BeginFilterDisplayItem::create(*m_layoutObject, imageFilter, rootRelativeBounds, webFilterOperations.release());
- context->displayItemList()->add(filterDisplayItem.release());
+ context->displayItemList()->createAndAppendIfNeeded<BeginFilterDisplayItem>(*m_layoutObject, imageFilter, rootRelativeBounds, webFilterOperations.release());
}
} else {
- OwnPtr<BeginFilterDisplayItem> filterDisplayItem = BeginFilterDisplayItem::create(*m_layoutObject, imageFilter, rootRelativeBounds);
-
- filterDisplayItem->replay(*context);
+ BeginFilterDisplayItem filterDisplayItem(*m_layoutObject, imageFilter, rootRelativeBounds);
+ filterDisplayItem.replay(*context);
}
m_filterInProgress = true;
@@ -81,14 +79,13 @@ FilterPainter::~FilterPainter()
if (!m_filterInProgress)
return;
- OwnPtr<EndFilterDisplayItem> endFilterDisplayItem = EndFilterDisplayItem::create(*m_layoutObject);
if (RuntimeEnabledFeatures::slimmingPaintEnabled()) {
ASSERT(m_context->displayItemList());
- if (m_context->displayItemList()->displayItemConstructionIsDisabled())
- return;
- m_context->displayItemList()->add(endFilterDisplayItem.release());
+ if (!m_context->displayItemList()->displayItemConstructionIsDisabled())
+ m_context->displayItemList()->createAndAppendIfNeeded<EndFilterDisplayItem>(*m_layoutObject);
} else {
- endFilterDisplayItem->replay(*m_context);
+ EndFilterDisplayItem endFilterDisplayItem(*m_layoutObject);
+ endFilterDisplayItem.replay(*m_context);
}
}

Powered by Google App Engine
This is Rietveld 408576698