Title: [234814] trunk/Source/WebCore
Revision
234814
Author
[email protected]
Date
2018-08-13 13:17:09 -0700 (Mon, 13 Aug 2018)

Log Message

Modernize CSSSelectorList a little
https://bugs.webkit.org/show_bug.cgi?id=188527

Reviewed by Simon Fraser.

No change in behavior.  Just use make_unique and move semantics a little more.

* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::adoptSelectorVector): Deleted.
* css/CSSSelectorList.h:
* css/StyleRule.h:
* css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::parsePageSelector):
* css/parser/CSSParserSelector.cpp:
(WebCore::CSSParserSelector::adoptSelectorVector):
* css/parser/CSSParserSelector.h:
* css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumeComplexSelectorList):
(WebCore::CSSSelectorParser::consumeCompoundSelectorList):
(WebCore::CSSSelectorParser::consumePseudo):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (234813 => 234814)


--- trunk/Source/WebCore/ChangeLog	2018-08-13 20:01:50 UTC (rev 234813)
+++ trunk/Source/WebCore/ChangeLog	2018-08-13 20:17:09 UTC (rev 234814)
@@ -1,3 +1,27 @@
+2018-08-13  Alex Christensen  <[email protected]>
+
+        Modernize CSSSelectorList a little
+        https://bugs.webkit.org/show_bug.cgi?id=188527
+
+        Reviewed by Simon Fraser.
+
+        No change in behavior.  Just use make_unique and move semantics a little more.
+
+        * css/CSSSelectorList.cpp:
+        (WebCore::CSSSelectorList::CSSSelectorList):
+        (WebCore::CSSSelectorList::adoptSelectorVector): Deleted.
+        * css/CSSSelectorList.h:
+        * css/StyleRule.h:
+        * css/parser/CSSParserImpl.cpp:
+        (WebCore::CSSParserImpl::parsePageSelector):
+        * css/parser/CSSParserSelector.cpp:
+        (WebCore::CSSParserSelector::adoptSelectorVector):
+        * css/parser/CSSParserSelector.h:
+        * css/parser/CSSSelectorParser.cpp:
+        (WebCore::CSSSelectorParser::consumeComplexSelectorList):
+        (WebCore::CSSSelectorParser::consumeCompoundSelectorList):
+        (WebCore::CSSSelectorParser::consumePseudo):
+
 2018-08-13  Antti Koivisto  <[email protected]>
 
         Meaning of OptionSet::contains is unclear when used with OptionSet argument

Modified: trunk/Source/WebCore/css/CSSSelectorList.cpp (234813 => 234814)


--- trunk/Source/WebCore/css/CSSSelectorList.cpp	2018-08-13 20:01:50 UTC (rev 234813)
+++ trunk/Source/WebCore/css/CSSSelectorList.cpp	2018-08-13 20:17:09 UTC (rev 234814)
@@ -48,11 +48,10 @@
     other.m_selectorArray = nullptr;
 }
 
-void CSSSelectorList::adoptSelectorVector(Vector<std::unique_ptr<CSSParserSelector>>& selectorVector)
+CSSSelectorList::CSSSelectorList(Vector<std::unique_ptr<CSSParserSelector>>&& selectorVector)
 {
     ASSERT_WITH_SECURITY_IMPLICATION(!selectorVector.isEmpty());
 
-    deleteSelectors();
     size_t flattenedSize = 0;
     for (size_t i = 0; i < selectorVector.size(); ++i) {
         for (CSSParserSelector* selector = selectorVector[i].get(); selector; selector = selector->tagHistory())
@@ -82,7 +81,6 @@
     }
     ASSERT(flattenedSize == arrayIndex);
     m_selectorArray[arrayIndex - 1].setLastInSelectorList();
-    selectorVector.clear();
 }
 
 unsigned CSSSelectorList::componentCount() const

Modified: trunk/Source/WebCore/css/CSSSelectorList.h (234813 => 234814)


--- trunk/Source/WebCore/css/CSSSelectorList.h	2018-08-13 20:01:50 UTC (rev 234813)
+++ trunk/Source/WebCore/css/CSSSelectorList.h	2018-08-13 20:17:09 UTC (rev 234814)
@@ -38,10 +38,10 @@
     CSSSelectorList() : m_selectorArray(0) { }
     CSSSelectorList(const CSSSelectorList&);
     CSSSelectorList(CSSSelectorList&&);
+    CSSSelectorList(Vector<std::unique_ptr<CSSParserSelector>>&&);
 
     ~CSSSelectorList() { deleteSelectors(); }
 
-    void adoptSelectorVector(Vector<std::unique_ptr<CSSParserSelector>>& selectorVector);
     void adoptSelectorArray(CSSSelector* selectors) { ASSERT(!m_selectorArray); m_selectorArray = selectors; }
 
     bool isValid() const { return !!m_selectorArray; }

Modified: trunk/Source/WebCore/css/StyleRule.h (234813 => 234814)


--- trunk/Source/WebCore/css/StyleRule.h	2018-08-13 20:01:50 UTC (rev 234813)
+++ trunk/Source/WebCore/css/StyleRule.h	2018-08-13 20:17:09 UTC (rev 234814)
@@ -208,7 +208,6 @@
     const StyleProperties& properties() const { return m_properties; }
     MutableStyleProperties& mutableProperties();
 
-    void parserAdoptSelectorVector(Vector<std::unique_ptr<CSSParserSelector>>& selectors) { m_selectorList.adoptSelectorVector(selectors); }
     void wrapperAdoptSelectorList(CSSSelectorList& selectors) { m_selectorList = WTFMove(selectors); }
 
     Ref<StyleRulePage> copy() const { return adoptRef(*new StyleRulePage(*this)); }

Modified: trunk/Source/WebCore/css/parser/CSSParserImpl.cpp (234813 => 234814)


--- trunk/Source/WebCore/css/parser/CSSParserImpl.cpp	2018-08-13 20:01:50 UTC (rev 234813)
+++ trunk/Source/WebCore/css/parser/CSSParserImpl.cpp	2018-08-13 20:17:09 UTC (rev 234814)
@@ -282,9 +282,9 @@
 
     std::unique_ptr<CSSParserSelector> selector;
     if (!typeSelector.isNull() && pseudo.isNull())
-        selector = std::unique_ptr<CSSParserSelector>(new CSSParserSelector(QualifiedName(nullAtom(), typeSelector, styleSheet->defaultNamespace())));
+        selector = std::make_unique<CSSParserSelector>(QualifiedName(nullAtom(), typeSelector, styleSheet->defaultNamespace()));
     else {
-        selector = std::unique_ptr<CSSParserSelector>(new CSSParserSelector);
+        selector = std::make_unique<CSSParserSelector>();
         if (!pseudo.isNull()) {
             selector = std::unique_ptr<CSSParserSelector>(CSSParserSelector::parsePagePseudoSelector(pseudo));
             if (!selector || selector->match() != CSSSelector::PagePseudoClass)
@@ -295,11 +295,7 @@
     }
 
     selector->setForPage();
-    Vector<std::unique_ptr<CSSParserSelector>> selectorVector;
-    selectorVector.append(WTFMove(selector));
-    CSSSelectorList selectorList;
-    selectorList.adoptSelectorVector(selectorVector);
-    return selectorList;
+    return { Vector<std::unique_ptr<CSSParserSelector>>::from(WTFMove(selector)) };
 }
 
 std::unique_ptr<Vector<double>> CSSParserImpl::parseKeyframeKeyList(const String& keyList)

Modified: trunk/Source/WebCore/css/parser/CSSParserSelector.cpp (234813 => 234814)


--- trunk/Source/WebCore/css/parser/CSSParserSelector.cpp	2018-08-13 20:01:50 UTC (rev 234813)
+++ trunk/Source/WebCore/css/parser/CSSParserSelector.cpp	2018-08-13 20:17:09 UTC (rev 234814)
@@ -124,11 +124,9 @@
     }
 }
 
-void CSSParserSelector::adoptSelectorVector(Vector<std::unique_ptr<CSSParserSelector>>& selectorVector)
+void CSSParserSelector::adoptSelectorVector(Vector<std::unique_ptr<CSSParserSelector>>&& selectorVector)
 {
-    auto selectorList = std::make_unique<CSSSelectorList>();
-    selectorList->adoptSelectorVector(selectorVector);
-    m_selector->setSelectorList(WTFMove(selectorList));
+    m_selector->setSelectorList(std::make_unique<CSSSelectorList>(WTFMove(selectorVector)));
 }
 
 void CSSParserSelector::setLangArgumentList(std::unique_ptr<Vector<AtomicString>> argumentList)

Modified: trunk/Source/WebCore/css/parser/CSSParserSelector.h (234813 => 234814)


--- trunk/Source/WebCore/css/parser/CSSParserSelector.h	2018-08-13 20:01:50 UTC (rev 234813)
+++ trunk/Source/WebCore/css/parser/CSSParserSelector.h	2018-08-13 20:17:09 UTC (rev 234814)
@@ -71,7 +71,7 @@
     
     void setPseudoElementType(CSSSelector::PseudoElementType type) { m_selector->setPseudoElementType(type); }
 
-    void adoptSelectorVector(Vector<std::unique_ptr<CSSParserSelector>>& selectorVector);
+    void adoptSelectorVector(Vector<std::unique_ptr<CSSParserSelector>>&&);
     void setLangArgumentList(std::unique_ptr<Vector<AtomicString>>);
     void setSelectorList(std::unique_ptr<CSSSelectorList>);
 

Modified: trunk/Source/WebCore/css/parser/CSSSelectorParser.cpp (234813 => 234814)


--- trunk/Source/WebCore/css/parser/CSSSelectorParser.cpp	2018-08-13 20:01:50 UTC (rev 234813)
+++ trunk/Source/WebCore/css/parser/CSSSelectorParser.cpp	2018-08-13 20:17:09 UTC (rev 234814)
@@ -68,11 +68,9 @@
         selectorList.append(WTFMove(selector));
     }
 
-    CSSSelectorList list;
     if (m_failedParsing)
-        return list;
-    list.adoptSelectorVector(selectorList);
-    return list;
+        return { };
+    return { WTFMove(selectorList) };
 }
 
 CSSSelectorList CSSSelectorParser::consumeCompoundSelectorList(CSSParserTokenRange& range)
@@ -92,11 +90,9 @@
         selectorList.append(WTFMove(selector));
     }
 
-    CSSSelectorList list;
     if (m_failedParsing)
-        return list;
-    list.adoptSelectorVector(selectorList);
-    return list;
+        return { };
+    return { WTFMove(selectorList) };
 }
 
 static bool consumeLangArgumentList(std::unique_ptr<Vector<AtomicString>>& argumentList, CSSParserTokenRange& range)
@@ -631,9 +627,7 @@
             block.consumeWhitespace();
             if (!innerSelector || !block.atEnd())
                 return nullptr;
-            Vector<std::unique_ptr<CSSParserSelector>> selectorVector;
-            selectorVector.append(WTFMove(innerSelector));
-            selector->adoptSelectorVector(selectorVector);
+            selector->adoptSelectorVector(Vector<std::unique_ptr<CSSParserSelector>>::from(WTFMove(innerSelector)));
             return selector;
         }
         default:
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to