Title: [275872] trunk/Source/WebCore
Revision
275872
Author
[email protected]
Date
2021-04-13 02:05:44 -0700 (Tue, 13 Apr 2021)

Log Message

Use WTF::compactMap in HTMLSlotElement
https://bugs.webkit.org/show_bug.cgi?id=224470

Reviewed by Antti Koivisto.

Cleaned up the code in assignedNodes and assignedElements with WTF::compactMap.

* html/HTMLSlotElement.cpp:
(WebCore::HTMLSlotElement::assignedNodes const):
(WebCore::HTMLSlotElement::assignedElements const):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (275871 => 275872)


--- trunk/Source/WebCore/ChangeLog	2021-04-13 08:38:14 UTC (rev 275871)
+++ trunk/Source/WebCore/ChangeLog	2021-04-13 09:05:44 UTC (rev 275872)
@@ -1,3 +1,16 @@
+2021-04-13  Ryosuke Niwa  <[email protected]>
+
+        Use WTF::compactMap in HTMLSlotElement
+        https://bugs.webkit.org/show_bug.cgi?id=224470
+
+        Reviewed by Antti Koivisto.
+
+        Cleaned up the code in assignedNodes and assignedElements with WTF::compactMap.
+
+        * html/HTMLSlotElement.cpp:
+        (WebCore::HTMLSlotElement::assignedNodes const):
+        (WebCore::HTMLSlotElement::assignedElements const):
+
 2021-04-13  Philippe Normand  <[email protected]>
 
         [GStreamer] CaptureDevice monitor used from UIProcess

Modified: trunk/Source/WebCore/html/HTMLSlotElement.cpp (275871 => 275872)


--- trunk/Source/WebCore/html/HTMLSlotElement.cpp	2021-04-13 08:38:14 UTC (rev 275871)
+++ trunk/Source/WebCore/html/HTMLSlotElement.cpp	2021-04-13 09:05:44 UTC (rev 275872)
@@ -141,34 +141,23 @@
         flattenAssignedNodes(nodes, *this);
         return nodes;
     }
-    auto* assignedNodes = this->assignedNodes();
-    if (!assignedNodes)
-        return { };
 
-    Vector<Ref<Node>> nodes;
-    nodes.reserveInitialCapacity(assignedNodes->size());
-    for (auto& nodePtr : *assignedNodes) {
-        auto* node = nodePtr.get();
-        if (UNLIKELY(!node))
-            continue;
-        nodes.uncheckedAppend(*node);
+    if (auto* nodes = assignedNodes(); nodes) {
+        return WTF::compactMap(*nodes, [](auto& nodeWeakPtr) -> RefPtr<Node> {
+            return nodeWeakPtr.get();
+        });
     }
 
-    return nodes;
+    return { };
 }
 
 Vector<Ref<Element>> HTMLSlotElement::assignedElements(const AssignedNodesOptions& options) const
 {
-    auto nodes = assignedNodes(options);
-
-    Vector<Ref<Element>> elements;
-    elements.reserveCapacity(nodes.size());
-    for (auto& node : nodes) {
-        if (is<Element>(node))
-            elements.uncheckedAppend(static_reference_cast<Element>(WTFMove(node)));
-    }
-
-    return elements;
+    return WTF::compactMap(assignedNodes(options), [](auto&& node) -> RefPtr<Element> {
+        if (!is<Element>(node))
+            return nullptr;
+        return static_reference_cast<Element>(WTFMove(node));
+    });
 }
 
 void HTMLSlotElement::enqueueSlotChangeEvent()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to