Changeset 159912 in webkit


Ignore:
Timestamp:
Dec 1, 2013 9:44:16 PM (10 years ago)
Author:
akling@apple.com
Message:

SVG: Intersection/enclosure checks should use RenderElement.
<https://webkit.org/b/125058>

Make RenderSVGModelObject's checkIntersection() and checkEnclosure()
take RenderElement* instead of RenderObject*. They are only ever
called with SVGElement's renderers.

Reviewed by Sam Weinig.

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r159911 r159912  
     12013-12-01  Andreas Kling  <akling@apple.com>
     2
     3        SVG: Intersection/enclosure checks should use RenderElement.
     4        <https://webkit.org/b/125058>
     5
     6        Make RenderSVGModelObject's checkIntersection() and checkEnclosure()
     7        take RenderElement* instead of RenderObject*. They are only ever
     8        called with SVGElement's renderers.
     9
     10        Reviewed by Sam Weinig.
     11
    1122013-12-01  Andreas Kling  <akling@apple.com>
    213
  • trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp

    r158999 r159912  
    156156// One of the element types that can cause graphics to be drawn onto the target canvas. Specifically: circle, ellipse,
    157157// image, line, path, polygon, polyline, rect, text and use.
    158 static bool isGraphicsElement(RenderObject* renderer)
     158static bool isGraphicsElement(const RenderElement& renderer)
    159159{
    160     return renderer->isSVGShape() || renderer->isSVGText() || renderer->isSVGImage() || renderer->node()->hasTagName(SVGNames::useTag);
     160    return renderer.isSVGShape() || renderer.isSVGText() || renderer.isSVGImage() || renderer.element()->hasTagName(SVGNames::useTag);
    161161}
    162162
     
    168168}
    169169   
    170 bool RenderSVGModelObject::checkIntersection(RenderObject* renderer, const FloatRect& rect)
     170bool RenderSVGModelObject::checkIntersection(RenderElement* renderer, const FloatRect& rect)
    171171{
    172172    if (!renderer || renderer->style().pointerEvents() == PE_NONE)
    173173        return false;
    174     if (!isGraphicsElement(renderer))
     174    if (!isGraphicsElement(*renderer))
    175175        return false;
    176176    AffineTransform ctm;
    177     SVGElement* svgElement = toSVGElement(renderer->node());
     177    SVGElement* svgElement = toSVGElement(renderer->element());
    178178    getElementCTM(svgElement, ctm);
    179179    ASSERT(svgElement->renderer());
     
    181181}
    182182
    183 bool RenderSVGModelObject::checkEnclosure(RenderObject* renderer, const FloatRect& rect)
     183bool RenderSVGModelObject::checkEnclosure(RenderElement* renderer, const FloatRect& rect)
    184184{
    185185    if (!renderer || renderer->style().pointerEvents() == PE_NONE)
    186186        return false;
    187     if (!isGraphicsElement(renderer))
     187    if (!isGraphicsElement(*renderer))
    188188        return false;
    189189    AffineTransform ctm;
    190     SVGElement* svgElement = toSVGElement(renderer->node());
     190    SVGElement* svgElement = toSVGElement(renderer->element());
    191191    getElementCTM(svgElement, ctm);
    192192    ASSERT(svgElement->renderer());
  • trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.h

    r158999 r159912  
    6060    virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OVERRIDE;
    6161
    62     static bool checkIntersection(RenderObject*, const FloatRect&);
    63     static bool checkEnclosure(RenderObject*, const FloatRect&);
     62    static bool checkIntersection(RenderElement*, const FloatRect&);
     63    static bool checkEnclosure(RenderElement*, const FloatRect&);
    6464
    6565    virtual FloatRect repaintRectInLocalCoordinatesExcludingSVGShadow() const { return repaintRectInLocalCoordinates(); }
Note: See TracChangeset for help on using the changeset viewer.