[S.P.] Use LayoutObject references in SVGFilterPainter.
Review URL: https://codereview.chromium.org/1034683002
git-svn-id: svn://svn.chromium.org/blink/trunk@192547 bbb929c8-8fbe-4397-9dbb-9b2b20218538
diff --git a/third_party/WebKit/Source/core/paint/SVGFilterPainter.cpp b/third_party/WebKit/Source/core/paint/SVGFilterPainter.cpp
index fa5a8890..3d41d25 100644
--- a/third_party/WebKit/Source/core/paint/SVGFilterPainter.cpp
+++ b/third_party/WebKit/Source/core/paint/SVGFilterPainter.cpp
@@ -120,14 +120,13 @@
filterData->m_state = FilterData::ReadyToPaint;
}
-GraphicsContext* SVGFilterPainter::prepareEffect(LayoutObject* object, GraphicsContext* context)
+GraphicsContext* SVGFilterPainter::prepareEffect(LayoutObject& object, GraphicsContext* context)
{
- ASSERT(object);
ASSERT(context);
m_filter.clearInvalidationMask();
- if (FilterData* filterData = m_filter.getFilterDataForLayoutObject(object)) {
+ if (FilterData* filterData = m_filter.getFilterDataForLayoutObject(&object)) {
// If the filterData already exists we do not need to record the content
// to be filtered. This can occur if the content was previously recorded
// or we are in a cycle.
@@ -138,7 +137,7 @@
}
OwnPtrWillBeRawPtr<FilterData> filterData = FilterData::create();
- FloatRect targetBoundingBox = object->objectBoundingBox();
+ FloatRect targetBoundingBox = object.objectBoundingBox();
SVGFilterElement* filterElement = toSVGFilterElement(m_filter.element());
filterData->boundaries = SVGLengthContext::resolveRectangle<SVGFilterElement>(filterElement, filterElement->filterUnits()->currentValue()->enumValue(), targetBoundingBox);
@@ -146,7 +145,7 @@
return nullptr;
// Create the SVGFilter object.
- FloatRect drawingRegion = object->strokeBoundingBox();
+ FloatRect drawingRegion = object.strokeBoundingBox();
drawingRegion.intersect(filterData->boundaries);
bool primitiveBoundingBoxMode = filterElement->primitiveUnits()->currentValue()->enumValue() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
filterData->filter = SVGFilter::create(enclosingIntRect(drawingRegion), targetBoundingBox, filterData->boundaries, primitiveBoundingBoxMode);
@@ -163,16 +162,15 @@
lastEffect->determineFilterPrimitiveSubregion(ClipToFilterRegion);
FilterData* data = filterData.get();
- m_filter.setFilterDataForLayoutObject(object, filterData.release());
+ m_filter.setFilterDataForLayoutObject(&object, filterData.release());
return beginRecordingContent(context, data);
}
-void SVGFilterPainter::finishEffect(LayoutObject* object, GraphicsContext* context)
+void SVGFilterPainter::finishEffect(LayoutObject& object, GraphicsContext* context)
{
- ASSERT(object);
ASSERT(context);
- FilterData* filterData = m_filter.getFilterDataForLayoutObject(object);
+ FilterData* filterData = m_filter.getFilterDataForLayoutObject(&object);
if (!filterData)
return;
diff --git a/third_party/WebKit/Source/core/paint/SVGFilterPainter.h b/third_party/WebKit/Source/core/paint/SVGFilterPainter.h
index 0e7dc0d..1d6768d 100644
--- a/third_party/WebKit/Source/core/paint/SVGFilterPainter.h
+++ b/third_party/WebKit/Source/core/paint/SVGFilterPainter.h
@@ -17,8 +17,8 @@
// Returns the context that should be used to paint the filter contents, or
// null if the content should not be recorded.
- GraphicsContext* prepareEffect(LayoutObject*, GraphicsContext*);
- void finishEffect(LayoutObject*, GraphicsContext*);
+ GraphicsContext* prepareEffect(LayoutObject&, GraphicsContext*);
+ void finishEffect(LayoutObject&, GraphicsContext*);
private:
LayoutSVGResourceFilter& m_filter;
diff --git a/third_party/WebKit/Source/core/paint/SVGPaintContext.cpp b/third_party/WebKit/Source/core/paint/SVGPaintContext.cpp
index 18f0e34..32ac7bd 100644
--- a/third_party/WebKit/Source/core/paint/SVGPaintContext.cpp
+++ b/third_party/WebKit/Source/core/paint/SVGPaintContext.cpp
@@ -47,7 +47,7 @@
LayoutObjectDrawingRecorder recorder(m_originalPaintInfo->context, *m_object, DisplayItem::SVGFilter, LayoutRect::infiniteIntRect());
if (!recorder.canUseCachedDrawing())
- SVGFilterPainter(*m_filter).finishEffect(m_object, m_originalPaintInfo->context);
+ SVGFilterPainter(*m_filter).finishEffect(*m_object, m_originalPaintInfo->context);
// Reset the paint info after the filter effect has been completed.
// This isn't strictly required (e.g., m_paintInfo.rect is not used
@@ -160,7 +160,7 @@
return false;
} else if (LayoutSVGResourceFilter* filter = resources->filter()) {
m_filter = filter;
- GraphicsContext* filterContext = SVGFilterPainter(*filter).prepareEffect(m_object, m_paintInfo.context);
+ GraphicsContext* filterContext = SVGFilterPainter(*filter).prepareEffect(*m_object, m_paintInfo.context);
if (!filterContext)
return false;