[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;