Index: Source/core/rendering/FilterEffectRenderer.cpp |
diff --git a/Source/core/rendering/FilterEffectRenderer.cpp b/Source/core/rendering/FilterEffectRenderer.cpp |
index 507ab39abfe27ff43ee80dc1e1a2285d857a5b7d..1e2e14d6d152ef456571bf6e99f975743c57ef97 100644 |
--- a/Source/core/rendering/FilterEffectRenderer.cpp |
+++ b/Source/core/rendering/FilterEffectRenderer.cpp |
@@ -76,20 +76,26 @@ FilterEffectRenderer::~FilterEffectRenderer() |
{ |
} |
+void FilterEffectRenderer::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_lastEffect); |
+ visitor->trace(m_referenceFilters); |
+} |
+ |
bool FilterEffectRenderer::build(RenderObject* renderer, const FilterOperations& operations) |
{ |
const RenderStyle* style = renderer->style(); |
float zoom = style ? style->effectiveZoom() : 1.0f; |
// Create a parent filter for shorthand filters. These have already been scaled by the CSS code for page zoom, so scale is 1.0 here. |
- RefPtr<ReferenceFilter> parentFilter = ReferenceFilter::create(1.0f); |
- RefPtr<FilterEffect> previousEffect = SourceGraphic::create(parentFilter.get()); |
+ RefPtrWillBeRawPtr<ReferenceFilter> parentFilter = ReferenceFilter::create(1.0f); |
+ RefPtrWillBeRawPtr<FilterEffect> previousEffect = SourceGraphic::create(parentFilter.get()); |
for (size_t i = 0; i < operations.operations().size(); ++i) { |
- RefPtr<FilterEffect> effect; |
+ RefPtrWillBeRawPtr<FilterEffect> effect = nullptr; |
FilterOperation* filterOperation = operations.operations().at(i).get(); |
switch (filterOperation->type()) { |
case FilterOperation::REFERENCE: { |
- RefPtr<ReferenceFilter> referenceFilter = ReferenceFilter::create(zoom); |
+ RefPtrWillBeRawPtr<ReferenceFilter> referenceFilter = ReferenceFilter::create(zoom); |
effect = ReferenceFilterBuilder::build(referenceFilter.get(), renderer, previousEffect.get(), toReferenceFilterOperation(filterOperation)); |
referenceFilter->setLastEffect(effect); |
m_referenceFilters.append(referenceFilter); |