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); |
} |
} |