Simplify CSSStyleSelector constructor through the use of a helper function
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 Apr 2012 12:11:05 +0000 (12:11 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 Apr 2012 12:11:05 +0000 (12:11 +0000)
https://bugs.webkit.org/show_bug.cgi?id=82940

Reviewed by Andreas Kling.

No behavior change, thus no tests.

* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::CSSStyleSelector):
(WebCore):
(WebCore::CSSStyleSelector::addAuthorRulesAndCollectUserRulesFromSheets):
* css/CSSStyleSelector.h:
(CSSStyleSelector):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113016 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/css/CSSStyleSelector.cpp
Source/WebCore/css/CSSStyleSelector.h

index a171522..b76915e 100644 (file)
@@ -1,3 +1,19 @@
+2012-04-03  Eric Seidel  <eric@webkit.org>
+
+        Simplify CSSStyleSelector constructor through the use of a helper function
+        https://bugs.webkit.org/show_bug.cgi?id=82940
+
+        Reviewed by Andreas Kling.
+
+        No behavior change, thus no tests.
+
+        * css/CSSStyleSelector.cpp:
+        (WebCore::CSSStyleSelector::CSSStyleSelector):
+        (WebCore):
+        (WebCore::CSSStyleSelector::addAuthorRulesAndCollectUserRulesFromSheets):
+        * css/CSSStyleSelector.h:
+        (CSSStyleSelector):
+
 2012-04-03  Yury Semikhatsky  <yurys@chromium.org>
 
         Web Inspector: Database::Database::id field in the protocol should have type integer not string
index 5e6d0e9..e90e2fd 100644 (file)
@@ -401,25 +401,8 @@ CSSStyleSelector::CSSStyleSelector(Document* document, bool matchAuthorAndUserSt
     OwnPtr<RuleSet> tempUserStyle = RuleSet::create();
     if (CSSStyleSheet* pageUserSheet = document->pageUserSheet())
         tempUserStyle->addRulesFromSheet(pageUserSheet, *m_medium, this);
-    if (const Vector<RefPtr<CSSStyleSheet> >* pageGroupUserSheets = document->pageGroupUserSheets()) {
-        unsigned length = pageGroupUserSheets->size();
-        for (unsigned i = 0; i < length; i++) {
-            if (pageGroupUserSheets->at(i)->isUserStyleSheet())
-                tempUserStyle->addRulesFromSheet(pageGroupUserSheets->at(i).get(), *m_medium, this);
-            else
-                m_authorStyle->addRulesFromSheet(pageGroupUserSheets->at(i).get(), *m_medium, this);
-        }
-    }
-    if (const Vector<RefPtr<CSSStyleSheet> >* documentUserSheets = document->documentUserSheets()) {
-        unsigned length = documentUserSheets->size();
-        for (unsigned i = 0; i < length; i++) {
-            if (documentUserSheets->at(i)->isUserStyleSheet())
-                tempUserStyle->addRulesFromSheet(documentUserSheets->at(i).get(), *m_medium, this);
-            else
-                m_authorStyle->addRulesFromSheet(documentUserSheets->at(i).get(), *m_medium, this);
-        }
-    }
-
+    addAuthorRulesAndCollectUserRulesFromSheets(document->pageGroupUserSheets(), *tempUserStyle);
+    addAuthorRulesAndCollectUserRulesFromSheets(document->documentUserSheets(), *tempUserStyle);
     if (tempUserStyle->m_ruleCount > 0 || tempUserStyle->m_pageRules.size() > 0)
         m_userStyle = tempUserStyle.release();
 
@@ -434,7 +417,22 @@ CSSStyleSelector::CSSStyleSelector(Document* document, bool matchAuthorAndUserSt
 
     appendAuthorStylesheets(0, document->styleSheets()->vector());
 }
-    
+
+void CSSStyleSelector::addAuthorRulesAndCollectUserRulesFromSheets(const Vector<RefPtr<CSSStyleSheet> >* userSheets, RuleSet& userStyle)
+{
+    if (!userSheets)
+        return;
+
+    unsigned length = userSheets->size();
+    for (unsigned i = 0; i < length; i++) {
+        const RefPtr<CSSStyleSheet>& sheet = userSheets->at(i);
+        if (sheet->isUserStyleSheet())
+            userStyle.addRulesFromSheet(sheet.get(), *m_medium, this);
+        else
+            m_authorStyle->addRulesFromSheet(sheet.get(), *m_medium, this);
+    }
+}
+
 static PassOwnPtr<RuleSet> makeRuleSet(const Vector<CSSStyleSelector::RuleFeature>& rules)
 {
     size_t size = rules.size();
index e4bb541..7d0bfb1 100644 (file)
@@ -399,6 +399,8 @@ public:
 private:
     static RenderStyle* s_styleNotYetAvailable;
 
+    void addAuthorRulesAndCollectUserRulesFromSheets(const Vector<RefPtr<CSSStyleSheet> >*, RuleSet& userStyle);
+
     void cacheBorderAndBackground();
 
     void mapFillAttachment(CSSPropertyID, FillLayer*, CSSValue*);