CSSValue: Clean up initial value construction.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 16 Nov 2011 15:49:12 +0000 (15:49 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 16 Nov 2011 15:49:12 +0000 (15:49 +0000)
<http://webkit.org/b/72502>

Patch by Andreas Kling <kling@webkit.org> on 2011-11-16
Reviewed by Antti Koivisto.

Instead of determining whether a given CSSInitialValue is 'implicit' or not by
querying the CSSValue::ClassType (InitialClass vs. ImplicitInitialClass),
add a protected CSSValue member and set it from the CSSInitialValue constructor.

Also get rid of the CSSValue::m_isInitial bit since we can now replace the
checks by classType() == InitialClass.

No new tests, this is a cleanup.

* css/CSSInitialValue.h:
(WebCore::CSSInitialValue::CSSInitialValue):

    Poke 'implicit' constructor argument into CSSValue::m_isImplicit.

* css/CSSValue.cpp:
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):

    Remove ImplicitInitialClass cases.

* css/CSSValue.h:
(WebCore::CSSValue::isImplicitInitialValue):
(WebCore::CSSValue::isInitialValue):
(WebCore::CSSValue::CSSValue):

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

Source/WebCore/ChangeLog
Source/WebCore/css/CSSInitialValue.h
Source/WebCore/css/CSSValue.cpp
Source/WebCore/css/CSSValue.h

index dbd0c8a3f7fb43fb1b0bc99530690e38a89f4328..cc37373aeb65477c1d6b6d06b846b1a6679fc197 100644 (file)
@@ -1,3 +1,35 @@
+2011-11-16  Andreas Kling  <kling@webkit.org>
+
+        CSSValue: Clean up initial value construction.
+        <http://webkit.org/b/72502>
+
+        Reviewed by Antti Koivisto.
+
+        Instead of determining whether a given CSSInitialValue is 'implicit' or not by
+        querying the CSSValue::ClassType (InitialClass vs. ImplicitInitialClass),
+        add a protected CSSValue member and set it from the CSSInitialValue constructor.
+
+        Also get rid of the CSSValue::m_isInitial bit since we can now replace the
+        checks by classType() == InitialClass.
+
+        No new tests, this is a cleanup.
+
+        * css/CSSInitialValue.h:
+        (WebCore::CSSInitialValue::CSSInitialValue):
+
+            Poke 'implicit' constructor argument into CSSValue::m_isImplicit.
+
+        * css/CSSValue.cpp:
+        (WebCore::CSSValue::cssText):
+        (WebCore::CSSValue::destroy):
+
+            Remove ImplicitInitialClass cases.
+
+        * css/CSSValue.h:
+        (WebCore::CSSValue::isImplicitInitialValue):
+        (WebCore::CSSValue::isInitialValue):
+        (WebCore::CSSValue::CSSValue):
+
 2011-11-16  Antaryami Pandia  <antaryami.pandia@motorola.com>
 
         Remove unnecessary if check from RenderListBox::paintItemForeground.
index 81dca8ec19123d49a525171ee2f529cdde05346c..d026f8983c333035b803689a965beced174b4d26 100644 (file)
@@ -43,8 +43,9 @@ public:
 
 private:
     CSSInitialValue(bool implicit)
-        : CSSValue(implicit ? ImplicitInitialClass : InitialClass)
+        : CSSValue(InitialClass)
     {
+        m_isImplicit = implicit;
     }
 
     static PassRefPtr<CSSInitialValue> create(bool implicit)
index 51ffa85258a2f2c04b4c91db937c3c3d7f6ed176..a71fe44f63975398bc0153fc3c1cc331f154102e 100644 (file)
@@ -120,7 +120,6 @@ String CSSValue::cssText() const
     case InheritedClass:
         return static_cast<const CSSInheritedValue*>(this)->customCssText();
     case InitialClass:
-    case ImplicitInitialClass:
         return static_cast<const CSSInitialValue*>(this)->customCssText();
     case PrimitiveClass:
         return static_cast<const CSSPrimitiveValue*>(this)->customCssText();
@@ -212,7 +211,6 @@ void CSSValue::destroy()
         delete static_cast<CSSInheritedValue*>(this);
         return;
     case InitialClass:
-    case ImplicitInitialClass:
         delete static_cast<CSSInitialValue*>(this);
         return;
     case PrimitiveClass:
index 8870687915a1bf4d7f05c54936860288a91eab0a..a19029bcaae2663238f9f9e4dc7c1c03bd2eb28c 100644 (file)
@@ -58,7 +58,6 @@ public:
 
     bool isPrimitiveValue() const { return m_isPrimitive; }
     bool isValueList() const { return m_isList; }
-    bool isInitialValue() const { return m_isInitial; }
     bool isInheritedValue() const { return m_isInherited; }
 
     bool isBorderImageValue() const { return m_classType == BorderImageClass; }
@@ -69,7 +68,8 @@ public:
     bool isFontValue() const { return m_classType == FontClass; }
     bool isImageGeneratorValue() const { return m_classType == CanvasClass || m_classType == CrossfadeClass || m_classType == LinearGradientClass || m_classType == RadialGradientClass; }
     bool isImageValue() const { return m_classType == ImageClass || m_classType == CursorImageClass; }
-    bool isImplicitInitialValue() const { return m_classType == ImplicitInitialClass; }
+    bool isImplicitInitialValue() const { return m_classType == InitialClass && m_isImplicit; }
+    bool isInitialValue() const { return m_classType == InitialClass; }
     bool isReflectValue() const { return m_classType == ReflectClass; }
     bool isShadowValue() const { return m_classType == ShadowClass; }
     bool isTimingFunctionValue() const { return m_classType == CubicBezierTimingFunctionClass || m_classType == LinearTimingFunctionClass || m_classType == StepsTimingFunctionClass; }
@@ -108,7 +108,6 @@ protected:
         ImageClass,
         InheritedClass,
         InitialClass,
-        ImplicitInitialClass,
         PrimitiveClass,
         ReflectClass,
         ShadowClass,
@@ -138,10 +137,10 @@ protected:
         : m_primitiveUnitType(0)
         , m_hasCachedCSSText(false)
         , m_isQuirkValue(false)
+        , m_isImplicit(false)
         , m_classType(classType)
         , m_isPrimitive(isPrimitiveType(classType))
         , m_isList(isListType(classType))
-        , m_isInitial(isInitialType(classType))
         , m_isInherited(isInheritedType(classType))
     {
     }
@@ -174,25 +173,24 @@ private:
         return type == InheritedClass;
     }
 
-    static bool isInitialType(ClassType type)
-    {
-        return type == InitialClass || type == ImplicitInitialClass;
-    }
-
     void destroy();
 
 protected:
-    // These bits are only used by CSSPrimitiveValue but kept here
+    // The bits in this section are only used by specific subclasses but kept here
     // to maximize struct packing.
+
+    // CSSPrimitiveValue bits:
     unsigned m_primitiveUnitType : 7; // CSSPrimitiveValue::UnitTypes
     mutable bool m_hasCachedCSSText : 1;
     bool m_isQuirkValue : 1;
 
+    // CSSInitialValue bits:
+    bool m_isImplicit : 1;
+
 private:
     unsigned m_classType : 5; // ClassType
     bool m_isPrimitive : 1;
     bool m_isList : 1;
-    bool m_isInitial : 1;
     bool m_isInherited : 1;
 };