Changeset 162747 in webkit


Ignore:
Timestamp:
Jan 24, 2014 6:32:23 PM (10 years ago)
Author:
Simon Fraser
Message:

Add typesafe casts for ScrollingTreeNode classes
https://bugs.webkit.org/show_bug.cgi?id=127597

Reviewed by Tim Horton.

Add a ScrollingNodeType member to ScrollingTreeNodes and
use it for type-safe casting.

  • page/scrolling/ScrollingTreeNode.cpp:

(WebCore::ScrollingTreeNode::ScrollingTreeNode):

  • page/scrolling/ScrollingTreeNode.h:

(WebCore::ScrollingTreeNode::nodeType):
(WebCore::ScrollingTreeNode::scrollingNodeID):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/mac/ScrollingTreeFixedNode.h:
  • page/scrolling/mac/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):

  • page/scrolling/mac/ScrollingTreeStickyNode.h:
  • page/scrolling/mac/ScrollingTreeStickyNode.mm:

(WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):

Location:
trunk/Source/WebCore
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r162745 r162747  
     12014-01-24  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Add typesafe casts for ScrollingTreeNode classes
     4        https://bugs.webkit.org/show_bug.cgi?id=127597
     5
     6        Reviewed by Tim Horton.
     7
     8        Add a ScrollingNodeType member to ScrollingTreeNodes and
     9        use it for type-safe casting.
     10
     11        * page/scrolling/ScrollingTreeNode.cpp:
     12        (WebCore::ScrollingTreeNode::ScrollingTreeNode):
     13        * page/scrolling/ScrollingTreeNode.h:
     14        (WebCore::ScrollingTreeNode::nodeType):
     15        (WebCore::ScrollingTreeNode::scrollingNodeID):
     16        * page/scrolling/ScrollingTreeScrollingNode.cpp:
     17        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
     18        * page/scrolling/ScrollingTreeScrollingNode.h:
     19        * page/scrolling/mac/ScrollingTreeFixedNode.h:
     20        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
     21        (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
     22        * page/scrolling/mac/ScrollingTreeStickyNode.h:
     23        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
     24        (WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):
     25
    1262014-01-24  Anders Carlsson  <andersca@apple.com>
    227
  • trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.cpp

    r160944 r162747  
    3333namespace WebCore {
    3434
    35 ScrollingTreeNode::ScrollingTreeNode(ScrollingTree& scrollingTree, ScrollingNodeID nodeID)
     35ScrollingTreeNode::ScrollingTreeNode(ScrollingTree& scrollingTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID)
    3636    : m_scrollingTree(scrollingTree)
     37    , m_nodeType(nodeType)
    3738    , m_nodeID(nodeID)
    3839    , m_parent(0)
  • trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h

    r161194 r162747  
    4444    virtual ~ScrollingTreeNode();
    4545
     46    ScrollingNodeType nodeType() const { return m_nodeType; }
     47    ScrollingNodeID scrollingNodeID() const { return m_nodeID; }
     48
    4649    virtual void updateBeforeChildren(const ScrollingStateNode&) = 0;
    4750    virtual void updateAfterChildren(const ScrollingStateNode&) { }
    4851
    4952    virtual void parentScrollPositionDidChange(const IntRect& viewportRect, const FloatSize& cumulativeDelta) = 0;
    50 
    51     ScrollingNodeID scrollingNodeID() const { return m_nodeID; }
    5253
    5354    ScrollingTreeNode* parent() const { return m_parent; }
     
    5859
    5960protected:
    60     ScrollingTreeNode(ScrollingTree&, ScrollingNodeID);
     61    ScrollingTreeNode(ScrollingTree&, ScrollingNodeType, ScrollingNodeID);
    6162    ScrollingTree& scrollingTree() const { return m_scrollingTree; }
    6263
     
    6768    ScrollingTree& m_scrollingTree;
    6869
    69     ScrollingNodeID m_nodeID;
     70    const ScrollingNodeType m_nodeType;
     71    const ScrollingNodeID m_nodeID;
    7072
    7173    ScrollingTreeNode* m_parent;
    7274};
     75
     76#define SCROLLING_NODE_TYPE_CASTS(ToValueTypeName, predicate) \
     77    TYPE_CASTS_BASE(ToValueTypeName, ScrollingTreeNode, value, value->predicate, value.predicate)
    7378
    7479} // namespace WebCore
  • trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp

    r161194 r162747  
    3535
    3636ScrollingTreeScrollingNode::ScrollingTreeScrollingNode(ScrollingTree& scrollingTree, ScrollingNodeID nodeID)
    37     : ScrollingTreeNode(scrollingTree, nodeID)
     37    : ScrollingTreeNode(scrollingTree, ScrollingNode, nodeID)
    3838    , m_frameScaleFactor(1)
    3939    , m_headerHeight(0)
  • trunk/Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h

    r162139 r162747  
    101101};
    102102
     103SCROLLING_NODE_TYPE_CASTS(ScrollingTreeScrollingNode, nodeType() == ScrollingNode);
     104
    103105} // namespace WebCore
    104106
  • trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h

    r162139 r162747  
    5555};
    5656
     57SCROLLING_NODE_TYPE_CASTS(ScrollingTreeFixedNode, nodeType() == FixedNode);
     58
    5759} // namespace WebCore
    5860
  • trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.mm

    r161610 r162747  
    4141
    4242ScrollingTreeFixedNode::ScrollingTreeFixedNode(ScrollingTree& scrollingTree, ScrollingNodeID nodeID)
    43     : ScrollingTreeNode(scrollingTree, nodeID)
     43    : ScrollingTreeNode(scrollingTree, FixedNode, nodeID)
    4444{
    4545}
  • trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeStickyNode.h

    r162139 r162747  
    5555};
    5656
     57SCROLLING_NODE_TYPE_CASTS(ScrollingTreeStickyNode, nodeType() == StickyNode);
     58
    5759} // namespace WebCore
    5860
  • trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeStickyNode.mm

    r161610 r162747  
    4141
    4242ScrollingTreeStickyNode::ScrollingTreeStickyNode(ScrollingTree& scrollingTree, ScrollingNodeID nodeID)
    43     : ScrollingTreeNode(scrollingTree, nodeID)
     43    : ScrollingTreeNode(scrollingTree, StickyNode, nodeID)
    4444{
    4545}
Note: See TracChangeset for help on using the changeset viewer.