Title: [149405] trunk/Source/WebCore
- Revision
- 149405
- Author
- [email protected]
- Date
- 2013-04-30 15:23:29 -0700 (Tue, 30 Apr 2013)
Log 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.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (149404 => 149405)
--- trunk/Source/WebCore/ChangeLog 2013-04-30 22:15:47 UTC (rev 149404)
+++ trunk/Source/WebCore/ChangeLog 2013-04-30 22:23:29 UTC (rev 149405)
@@ -1,3 +1,29 @@
+2013-04-30 Andrei Bucur <[email protected]>
+
+ 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.
+
2013-04-30 Anders Carlsson <[email protected]>
More StorageTracker cleanup
Modified: trunk/Source/WebCore/html/HTMLOListElement.cpp (149404 => 149405)
--- trunk/Source/WebCore/html/HTMLOListElement.cpp 2013-04-30 22:15:47 UTC (rev 149404)
+++ trunk/Source/WebCore/html/HTMLOListElement.cpp 2013-04-30 22:23:29 UTC (rev 149405)
@@ -106,17 +106,12 @@
void HTMLOListElement::updateItemValues()
{
- for (RenderListItem* listItem = RenderListItem::nextListItem(this); listItem; listItem = RenderListItem::nextListItem(this, listItem))
- listItem->updateValue();
+ RenderListItem::updateItemValuesForOrderedList(this);
}
void HTMLOListElement::recalculateItemCount()
{
- m_itemCount = 0;
-
- for (RenderListItem* listItem = RenderListItem::nextListItem(this); listItem; listItem = RenderListItem::nextListItem(this, listItem))
- m_itemCount++;
-
+ m_itemCount = RenderListItem::itemCountForOrderedList(this);
m_shouldRecalculateItemCount = false;
}
Modified: trunk/Source/WebCore/rendering/RenderListItem.cpp (149404 => 149405)
--- trunk/Source/WebCore/rendering/RenderListItem.cpp 2013-04-30 22:15:47 UTC (rev 149404)
+++ trunk/Source/WebCore/rendering/RenderListItem.cpp 2013-04-30 22:23:29 UTC (rev 149405)
@@ -92,7 +92,7 @@
updateListMarkerNumbers();
}
-static bool isList(Node* node)
+static bool isList(const Node* node)
{
return (node->hasTagName(ulTag) || node->hasTagName(olTag));
}
@@ -117,12 +117,12 @@
}
// Returns the next list item with respect to the DOM order.
-RenderListItem* RenderListItem::nextListItem(Node* listNode, const RenderListItem* item)
+static RenderListItem* nextListItem(const Node* listNode, const RenderListItem* item = 0)
{
if (!listNode)
return 0;
- Node* current = item ? item->node() : listNode;
+ const Node* current = item ? item->node() : listNode;
current = ElementTraversal::nextIncludingPseudo(current, listNode);
while (current) {
@@ -144,7 +144,7 @@
}
// Returns the previous list item with respect to the DOM order.
-static RenderListItem* previousListItem(Node* listNode, const RenderListItem* item)
+static RenderListItem* previousListItem(const Node* listNode, const RenderListItem* item)
{
Node* current = item->node();
for (current = ElementTraversal::previousIncludingPseudo(current, listNode); current; current = ElementTraversal::previousIncludingPseudo(current, listNode)) {
@@ -165,6 +165,25 @@
return 0;
}
+void RenderListItem::updateItemValuesForOrderedList(const HTMLOListElement* listNode)
+{
+ ASSERT(listNode);
+
+ for (RenderListItem* listItem = nextListItem(listNode); listItem; listItem = nextListItem(listNode, listItem))
+ listItem->updateValue();
+}
+
+unsigned RenderListItem::itemCountForOrderedList(const HTMLOListElement* listNode)
+{
+ ASSERT(listNode);
+
+ unsigned itemCount = 0;
+ for (RenderListItem* listItem = nextListItem(listNode); listItem; listItem = nextListItem(listNode, listItem))
+ itemCount++;
+
+ return itemCount;
+}
+
inline int RenderListItem::calcValue() const
{
if (m_hasExplicitValue)
@@ -464,7 +483,7 @@
static RenderListItem* previousOrNextItem(bool isListReversed, Node* list, RenderListItem* item)
{
- return isListReversed ? previousListItem(list, item) : RenderListItem::nextListItem(list, item);
+ return isListReversed ? previousListItem(list, item) : nextListItem(list, item);
}
void RenderListItem::updateListMarkerNumbers()
Modified: trunk/Source/WebCore/rendering/RenderListItem.h (149404 => 149405)
--- trunk/Source/WebCore/rendering/RenderListItem.h 2013-04-30 22:15:47 UTC (rev 149404)
+++ trunk/Source/WebCore/rendering/RenderListItem.h 2013-04-30 22:23:29 UTC (rev 149405)
@@ -27,6 +27,7 @@
namespace WebCore {
+class HTMLOListElement;
class RenderListMarker;
class RenderListItem : public RenderBlock {
@@ -49,7 +50,8 @@
void updateListMarkerNumbers();
- static RenderListItem* nextListItem(Node*, const RenderListItem* = 0);
+ static void updateItemValuesForOrderedList(const HTMLOListElement*);
+ static unsigned itemCountForOrderedList(const HTMLOListElement*);
private:
virtual const char* renderName() const { return "RenderListItem"; }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes