Index: Source/core/rendering/svg/RenderSVGResourceFilter.cpp |
diff --git a/Source/core/rendering/svg/RenderSVGResourceFilter.cpp b/Source/core/rendering/svg/RenderSVGResourceFilter.cpp |
index 15a4cf1d9f0e5fa33977f25ced99dd9a6fcf4660..5a0790d74ced8da436ba2b7d6dbef67a0624c885 100644 |
--- a/Source/core/rendering/svg/RenderSVGResourceFilter.cpp |
+++ b/Source/core/rendering/svg/RenderSVGResourceFilter.cpp |
@@ -33,6 +33,14 @@ |
namespace blink { |
+void FilterData::trace(Visitor* visitor) |
+{ |
+#if ENABLE(OILPAN) |
+ visitor->trace(filter); |
+ visitor->trace(builder); |
+#endif |
+} |
+ |
const RenderSVGResourceType RenderSVGResourceFilter::s_resourceType = FilterResourceType; |
RenderSVGResourceFilter::RenderSVGResourceFilter(SVGFilterElement* node) |
@@ -44,6 +52,14 @@ RenderSVGResourceFilter::~RenderSVGResourceFilter() |
{ |
} |
+void RenderSVGResourceFilter::trace(Visitor* visitor) |
+{ |
+#if ENABLE(OILPAN) |
+ visitor->trace(m_filter); |
+#endif |
+ RenderSVGResourceContainer::trace(visitor); |
+} |
+ |
void RenderSVGResourceFilter::destroy() |
{ |
m_filter.clear(); |
@@ -70,19 +86,19 @@ void RenderSVGResourceFilter::removeClientFromCache(RenderObject* client, bool m |
markClientForInvalidation(client, markForInvalidation ? BoundariesInvalidation : ParentOnlyInvalidation); |
} |
-PassRefPtr<SVGFilterBuilder> RenderSVGResourceFilter::buildPrimitives(SVGFilter* filter) |
+PassRefPtrWillBeRawPtr<SVGFilterBuilder> RenderSVGResourceFilter::buildPrimitives(SVGFilter* filter) |
{ |
SVGFilterElement* filterElement = toSVGFilterElement(element()); |
FloatRect targetBoundingBox = filter->targetBoundingBox(); |
// Add effects to the builder |
- RefPtr<SVGFilterBuilder> builder = SVGFilterBuilder::create(SourceGraphic::create(filter), SourceAlpha::create(filter)); |
+ RefPtrWillBeRawPtr<SVGFilterBuilder> builder = SVGFilterBuilder::create(SourceGraphic::create(filter), SourceAlpha::create(filter)); |
for (SVGElement* element = Traversal<SVGElement>::firstChild(*filterElement); element; element = Traversal<SVGElement>::nextSibling(*element)) { |
if (!element->isFilterEffect() || !element->renderer()) |
continue; |
SVGFilterPrimitiveStandardAttributes* effectElement = static_cast<SVGFilterPrimitiveStandardAttributes*>(element); |
- RefPtr<FilterEffect> effect = effectElement->build(builder.get(), filter); |
+ RefPtrWillBeRawPtr<FilterEffect> effect = effectElement->build(builder.get(), filter); |
if (!effect) { |
builder->clearEffects(); |
return nullptr; |
@@ -194,7 +210,7 @@ bool RenderSVGResourceFilter::prepareEffect(RenderObject* object, GraphicsContex |
return false; // Already built, or we're in a cycle. Regardless, just do nothing more now. |
} |
- OwnPtr<FilterData> filterData(adoptPtr(new FilterData)); |
+ OwnPtrWillBeRawPtr<FilterData> filterData = FilterData::create(); |
FloatRect targetBoundingBox = object->objectBoundingBox(); |
SVGFilterElement* filterElement = toSVGFilterElement(element()); |