Changeset 161323 in webkit


Ignore:
Timestamp:
Jan 5, 2014, 3:45:54 AM (12 years ago)
Author:
akling@apple.com
Message:

Use lineageOfType to simplify two rendering helpers.
<https://webkit.org/b/126498>

Reviewed by Antti Koivisto.

  • rendering/RenderRuby.cpp:

(WebCore::findRubyRunParent):

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::findTreeRootObject):

Simplify two functions that walk their parent chain to find the
closest ancestor of a certain type.

  • rendering/RenderRubyRun.h:

Add requisite isRendererOfType<RenderRubyRun>().

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r161321 r161323  
     12014-01-05  Andreas Kling  <akling@apple.com>
     2
     3        Use lineageOfType to simplify two rendering helpers.
     4        <https://webkit.org/b/126498>
     5
     6        Reviewed by Antti Koivisto.
     7
     8        * rendering/RenderRuby.cpp:
     9        (WebCore::findRubyRunParent):
     10        * rendering/svg/SVGRenderSupport.cpp:
     11        (WebCore::SVGRenderSupport::findTreeRootObject):
     12
     13            Simplify two functions that walk their parent chain to find the
     14            closest ancestor of a certain type.
     15
     16        * rendering/RenderRubyRun.h:
     17
     18            Add requisite isRendererOfType<RenderRubyRun>().
     19
    1202014-01-05  Csaba Osztrogonác  <ossy@webkit.org>
    221
  • trunk/Source/WebCore/rendering/RenderRuby.cpp

    r158163 r161323  
    3333#include "RenderRuby.h"
    3434
     35#include "RenderIterator.h"
    3536#include "RenderRubyRun.h"
    3637#include "RenderStyle.h"
     
    102103static inline RenderRubyRun& findRubyRunParent(RenderObject& child)
    103104{
    104     RenderObject* ancestor = &child;
    105     while (ancestor && !ancestor->isRubyRun())
    106         ancestor = ancestor->parent();
    107     ASSERT(ancestor);
    108     return toRenderRubyRun(*ancestor);
     105    return *lineageOfType<RenderRubyRun>(child).first();
    109106}
    110107
  • trunk/Source/WebCore/rendering/RenderRubyRun.h

    r158097 r161323  
    7878};
    7979
     80template<> inline bool isRendererOfType<const RenderRubyRun>(const RenderObject& renderer) { return renderer.isRubyRun(); }
     81
    8082RENDER_OBJECT_TYPE_CASTS(RenderRubyRun, isRubyRun())
    8183
  • trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp

    r160651 r161323  
    2929
    3030#include "NodeRenderStyle.h"
     31#include "RenderElement.h"
    3132#include "RenderGeometryMap.h"
     33#include "RenderIterator.h"
    3234#include "RenderLayer.h"
    3335#include "RenderSVGResource.h"
     
    183185const RenderSVGRoot& SVGRenderSupport::findTreeRootObject(const RenderElement& start)
    184186{
    185     auto renderer = &start;
    186     while (renderer && !renderer->isSVGRoot())
    187         renderer = renderer->parent();
    188 
    189     ASSERT(renderer);
    190     return toRenderSVGRoot(*renderer);
     187    return *lineageOfType<RenderSVGRoot>(start).first();
    191188}
    192189
Note: See TracChangeset for help on using the changeset viewer.