Changeset 149405 in webkit


Ignore:
Timestamp:
Apr 30, 2013 3:23:29 PM (11 years ago)
Author:
abucur@adobe.com
Message:

Cleanup HTMLOListElement<->RenderListItem bridge
https://bugs.webkit.org/show_bug.cgi?id=115434

Reviewed by Darin Adler.

Refactor the way HTMLOListElement is accessing its list items. Instead
of exposing the nextListItem function, wrap the desiredfunctionality
in static methods on RenderListItem. This should make the code more readable.
I've also added more constness to some functions in RenderListItem.

Tests: No new tests, just refactoring.

  • html/HTMLOListElement.cpp:

(WebCore::HTMLOListElement::updateItemValues): Use updateItemValuesForOrderedList.
(WebCore::HTMLOListElement::recalculateItemCount): Use itemCountForOrderedList.

  • rendering/RenderListItem.cpp:

(WebCore::isList): Add more constness.
(WebCore::nextListItem): Make local to the CPP and add constness.
(WebCore::previousListItem): Add constness.
(WebCore::RenderListItem::updateItemValuesForOrderedList): Called by OL elements.
(WebCore::RenderListItem::itemCountForOrderedList): Called by OL elements.
(WebCore::previousOrNextItem):

  • rendering/RenderListItem.h: Add updateItemValuesForOrderedList and itemCountForOrderedList.
Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r149402 r149405  
     12013-04-30  Andrei Bucur  <abucur@adobe.com>
     2
     3        Cleanup HTMLOListElement<->RenderListItem bridge
     4        https://bugs.webkit.org/show_bug.cgi?id=115434
     5
     6        Reviewed by Darin Adler.
     7
     8        Refactor the way HTMLOListElement is accessing its list items. Instead
     9        of exposing the nextListItem function, wrap the desiredfunctionality
     10        in static methods on RenderListItem. This should make the code more readable.
     11        I've also added more constness to some functions in RenderListItem.
     12
     13        Tests: No new tests, just refactoring.
     14
     15        * html/HTMLOListElement.cpp:
     16        (WebCore::HTMLOListElement::updateItemValues): Use updateItemValuesForOrderedList.
     17        (WebCore::HTMLOListElement::recalculateItemCount): Use itemCountForOrderedList.
     18        * rendering/RenderListItem.cpp:
     19        (WebCore::isList): Add more constness.
     20        (WebCore::nextListItem): Make local to the CPP and add constness.
     21        (WebCore::previousListItem): Add constness.
     22        (WebCore::RenderListItem::updateItemValuesForOrderedList): Called by OL elements.
     23        (WebCore::RenderListItem::itemCountForOrderedList): Called by OL elements.
     24        (WebCore::previousOrNextItem):
     25        * rendering/RenderListItem.h: Add updateItemValuesForOrderedList and itemCountForOrderedList.
     26
    1272013-04-30  Anders Carlsson  <andersca@apple.com>
    228
  • trunk/Source/WebCore/html/HTMLOListElement.cpp

    r148863 r149405  
    107107void HTMLOListElement::updateItemValues()
    108108{
    109     for (RenderListItem* listItem = RenderListItem::nextListItem(this); listItem; listItem = RenderListItem::nextListItem(this, listItem))
    110         listItem->updateValue();
     109    RenderListItem::updateItemValuesForOrderedList(this);
    111110}
    112111
    113112void HTMLOListElement::recalculateItemCount()
    114113{
    115     m_itemCount = 0;
    116 
    117     for (RenderListItem* listItem = RenderListItem::nextListItem(this); listItem; listItem = RenderListItem::nextListItem(this, listItem))
    118         m_itemCount++;
    119 
     114    m_itemCount = RenderListItem::itemCountForOrderedList(this);
    120115    m_shouldRecalculateItemCount = false;
    121116}
  • trunk/Source/WebCore/rendering/RenderListItem.cpp

    r148863 r149405  
    9393}
    9494
    95 static bool isList(Node* node)
     95static bool isList(const Node* node)
    9696{
    9797    return (node->hasTagName(ulTag) || node->hasTagName(olTag));
     
    118118
    119119// Returns the next list item with respect to the DOM order.
    120 RenderListItem* RenderListItem::nextListItem(Node* listNode, const RenderListItem* item)
     120static RenderListItem* nextListItem(const Node* listNode, const RenderListItem* item = 0)
    121121{
    122122    if (!listNode)
    123123        return 0;
    124124
    125     Node* current = item ? item->node() : listNode;
     125    const Node* current = item ? item->node() : listNode;
    126126    current = ElementTraversal::nextIncludingPseudo(current, listNode);
    127127
     
    145145
    146146// Returns the previous list item with respect to the DOM order.
    147 static RenderListItem* previousListItem(Node* listNode, const RenderListItem* item)
     147static RenderListItem* previousListItem(const Node* listNode, const RenderListItem* item)
    148148{
    149149    Node* current = item->node();
     
    164164    }
    165165    return 0;
     166}
     167
     168void RenderListItem::updateItemValuesForOrderedList(const HTMLOListElement* listNode)
     169{
     170    ASSERT(listNode);
     171
     172    for (RenderListItem* listItem = nextListItem(listNode); listItem; listItem = nextListItem(listNode, listItem))
     173        listItem->updateValue();
     174}
     175
     176unsigned RenderListItem::itemCountForOrderedList(const HTMLOListElement* listNode)
     177{
     178    ASSERT(listNode);
     179
     180    unsigned itemCount = 0;
     181    for (RenderListItem* listItem = nextListItem(listNode); listItem; listItem = nextListItem(listNode, listItem))
     182        itemCount++;
     183
     184    return itemCount;
    166185}
    167186
     
    465484static RenderListItem* previousOrNextItem(bool isListReversed, Node* list, RenderListItem* item)
    466485{
    467     return isListReversed ? previousListItem(list, item) : RenderListItem::nextListItem(list, item);
     486    return isListReversed ? previousListItem(list, item) : nextListItem(list, item);
    468487}
    469488
  • trunk/Source/WebCore/rendering/RenderListItem.h

    r148863 r149405  
    2828namespace WebCore {
    2929
     30class HTMLOListElement;
    3031class RenderListMarker;
    3132
     
    5051    void updateListMarkerNumbers();
    5152
    52     static RenderListItem* nextListItem(Node*, const RenderListItem* = 0);
     53    static void updateItemValuesForOrderedList(const HTMLOListElement*);
     54    static unsigned itemCountForOrderedList(const HTMLOListElement*);
    5355
    5456private:
Note: See TracChangeset for help on using the changeset viewer.