Index: Source/core/rendering/svg/RenderSVGResourceFilter.cpp |
diff --git a/Source/core/rendering/svg/RenderSVGResourceFilter.cpp b/Source/core/rendering/svg/RenderSVGResourceFilter.cpp |
index 920a0027dc21e0423856d704f981e73b85fc405f..25f131f1279bf60b9848ba968ea26648b2fbed38 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 |
+} |
+ |
RenderSVGResourceFilter::RenderSVGResourceFilter(SVGFilterElement* node) |
: RenderSVGResourceContainer(node) |
{ |
@@ -42,6 +50,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(); |
@@ -68,19 +84,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; |
@@ -192,7 +208,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()); |