+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.
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();
delete static_cast<CSSInheritedValue*>(this);
return;
case InitialClass:
- case ImplicitInitialClass:
delete static_cast<CSSInitialValue*>(this);
return;
case PrimitiveClass:
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; }
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; }
ImageClass,
InheritedClass,
InitialClass,
- ImplicitInitialClass,
PrimitiveClass,
ReflectClass,
ShadowClass,
: 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))
{
}
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;
};