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