Bug 1451289 - Part 12: Remove the intermediate macro and make CASE_RULE macro work with CSS*Rule instead r?emilio draft
authorNazım Can Altınova <canaltinova@gmail.com>
Wed, 06 Jun 2018 16:26:28 +0200
changeset 807065 d9f82abcca02b75846223b44df22e8bfb22211bd
parent 807064 c24ac356ff165cd325815a4d99e449975bdc0f3e
push id113035
push userbmo:canaltinova@gmail.com
push dateWed, 13 Jun 2018 19:14:54 +0000
reviewersemilio
bugs1451289
milestone62.0a1
Bug 1451289 - Part 12: Remove the intermediate macro and make CASE_RULE macro work with CSS*Rule instead r?emilio MozReview-Commit-ID: GblL8jA23g4
layout/style/ServoCSSRuleList.cpp
--- a/layout/style/ServoCSSRuleList.cpp
+++ b/layout/style/ServoCSSRuleList.cpp
@@ -85,41 +85,30 @@ ServoCSSRuleList::GetRule(uint32_t aInde
 #define CASE_RULE(const_, name_)                                            \
       case CSSRuleBinding::const_##_RULE: {                                 \
         uint32_t line = 0, column = 0;                                      \
         RefPtr<RawServo##name_##Rule> rule =                                \
           Servo_CssRules_Get##name_##RuleAt(                                \
               mRawRules, aIndex, &line, &column                             \
           ).Consume();                                                      \
         MOZ_ASSERT(rule);                                                   \
-        ruleObj = new Servo##name_##Rule(rule.forget(), line, column);      \
-        break;                                                              \
-      }
-#define CASE_RULE_CSS(const_, name_)                                        \
-      case CSSRuleBinding::const_##_RULE: {                                 \
-        uint32_t line = 0, column = 0;                                      \
-        RefPtr<RawServo##name_##Rule> rule =                                \
-          Servo_CssRules_Get##name_##RuleAt(                                \
-              mRawRules, aIndex, &line, &column                             \
-          ).Consume();                                                      \
-        MOZ_ASSERT(rule);                                                   \
         ruleObj = new CSS##name_##Rule(rule.forget(), line, column);        \
         break;                                                              \
       }
-      CASE_RULE_CSS(STYLE, Style)
-      CASE_RULE_CSS(KEYFRAMES, Keyframes)
-      CASE_RULE_CSS(MEDIA, Media)
-      CASE_RULE_CSS(NAMESPACE, Namespace)
-      CASE_RULE_CSS(PAGE, Page)
-      CASE_RULE_CSS(SUPPORTS, Supports)
-      CASE_RULE_CSS(DOCUMENT, MozDocument)
-      CASE_RULE_CSS(IMPORT, Import)
-      CASE_RULE_CSS(FONT_FEATURE_VALUES, FontFeatureValues)
-      CASE_RULE_CSS(FONT_FACE, FontFace)
-      CASE_RULE_CSS(COUNTER_STYLE, CounterStyle)
+      CASE_RULE(STYLE, Style)
+      CASE_RULE(KEYFRAMES, Keyframes)
+      CASE_RULE(MEDIA, Media)
+      CASE_RULE(NAMESPACE, Namespace)
+      CASE_RULE(PAGE, Page)
+      CASE_RULE(SUPPORTS, Supports)
+      CASE_RULE(DOCUMENT, MozDocument)
+      CASE_RULE(IMPORT, Import)
+      CASE_RULE(FONT_FEATURE_VALUES, FontFeatureValues)
+      CASE_RULE(FONT_FACE, FontFace)
+      CASE_RULE(COUNTER_STYLE, CounterStyle)
 #undef CASE_RULE
       case CSSRuleBinding::KEYFRAME_RULE:
         MOZ_ASSERT_UNREACHABLE("keyframe rule cannot be here");
         return nullptr;
       default:
         NS_WARNING("stylo: not implemented yet");
         return nullptr;
     }