WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Proposed patch v2
bug-71668-v2.diff (text/plain), 77.15 KB, created by
Andreas Kling
on 2011-11-07 11:48:53 PST
(
hide
)
Description:
Proposed patch v2
Filename:
MIME Type:
Creator:
Andreas Kling
Created:
2011-11-07 11:48:53 PST
Size:
77.15 KB
patch
obsolete
>diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt >index 6b2f17d..bc1fb2e 100644 >--- a/Source/WebCore/CMakeLists.txt >+++ b/Source/WebCore/CMakeLists.txt >@@ -463,6 +463,7 @@ SET(WebCore_SOURCES > css/CSSStyleSheet.cpp > css/CSSTimingFunctionValue.cpp > css/CSSUnicodeRangeValue.cpp >+ css/CSSValue.cpp > css/CSSValueList.cpp > css/CSSWrapShapes.cpp > css/FontFamilyValue.cpp >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 3c052ec..5f8e08c 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,5 +1,165 @@ > 2011-11-07 Andreas Kling <kling@webkit.org> > >+ CSSValue: Devirtualize isFooType(). >+ <http://webkit.org/b/71668> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add a member to CSSValue to determine which subclass a given >+ value object is, along with 5 bits to tell us whether the >+ value is primitive/mutable/initial/inherited/a list. >+ >+ All non-private subclass constructors now take CSSValue::ClassType >+ as their first argument. A few constructors were duplicated as >+ private members to allow calling them from ::create() methods >+ without passing an explicit ClassType. >+ >+ Furthermore, since CSSValue::cssValueType() can be inferred from >+ the subclass type, we compute it instead of storing it in a member. >+ >+ * CMakeLists.txt: >+ * GNUmakefile.list.am: >+ * Target.pri: >+ * WebCore.gypi: >+ * WebCore.vcproj/WebCore.vcproj: >+ * WebCore.xcodeproj/project.pbxproj: >+ >+ Adding CSSValue.cpp. >+ >+ * css/CSSValue.cpp: Added. >+ (WebCore::CSSValue::cssValueType): >+ >+ Out-of-line implementation of this method. Only used by CSSOM. >+ >+ * css/CSSValue.h: >+ (WebCore::CSSValue::isMutableValue): >+ (WebCore::CSSValue::isPrimitiveValue): >+ (WebCore::CSSValue::isValueList): >+ (WebCore::CSSValue::isInitialValue): >+ (WebCore::CSSValue::isInheritedValue): >+ (WebCore::CSSValue::isBorderImageValue): >+ (WebCore::CSSValue::isBorderImageSliceValue): >+ (WebCore::CSSValue::isCursorImageValue): >+ (WebCore::CSSValue::isFontFamilyValue): >+ (WebCore::CSSValue::isFontFeatureValue): >+ (WebCore::CSSValue::isFontValue): >+ (WebCore::CSSValue::isImageGeneratorValue): >+ (WebCore::CSSValue::isImageValue): >+ (WebCore::CSSValue::isImplicitInitialValue): >+ (WebCore::CSSValue::isReflectValue): >+ (WebCore::CSSValue::isShadowValue): >+ (WebCore::CSSValue::isTimingFunctionValue): >+ (WebCore::CSSValue::isWebKitCSSTransformValue): >+ (WebCore::CSSValue::isCSSLineBoxContainValue): >+ (WebCore::CSSValue::isFlexValue): >+ (WebCore::CSSValue::isWebKitCSSFilterValue): >+ (WebCore::CSSValue::isSVGColor): >+ (WebCore::CSSValue::isSVGPaint): >+ (WebCore::CSSValue::classType): >+ (WebCore::CSSValue::CSSValue): >+ (WebCore::CSSValue::isPrimitiveType): >+ (WebCore::CSSValue::isListType): >+ (WebCore::CSSValue::isMutableType): >+ (WebCore::CSSValue::isInheritedType): >+ (WebCore::CSSValue::isInitialType): >+ >+ Store subclass type information into a member variable and >+ made all the isFooValue() functions non-virtual and inline. >+ Some subclass type lookups (primitive values, notably) are >+ cached in a bool member on construction. >+ >+ * css/CSSAspectRatioValue.h: >+ (WebCore::CSSAspectRatioValue::CSSAspectRatioValue): >+ * css/CSSBorderImageSliceValue.cpp: >+ (WebCore::CSSBorderImageSliceValue::CSSBorderImageSliceValue): >+ * css/CSSBorderImageSliceValue.h: >+ * css/CSSBorderImageValue.cpp: >+ (WebCore::CSSBorderImageValue::CSSBorderImageValue): >+ * css/CSSBorderImageValue.h: >+ * css/CSSCanvasValue.h: >+ (WebCore::CSSCanvasValue::CSSCanvasValue): >+ * css/CSSCrossfadeValue.h: >+ (WebCore::CSSCrossfadeValue::CSSCrossfadeValue): >+ * css/CSSCursorImageValue.cpp: >+ (WebCore::CSSCursorImageValue::CSSCursorImageValue): >+ * css/CSSCursorImageValue.h: >+ * css/CSSFlexValue.h: >+ (WebCore::CSSFlexValue::CSSFlexValue): >+ * css/CSSFontFaceSrcValue.h: >+ (WebCore::CSSFontFaceSrcValue::CSSFontFaceSrcValue): >+ * css/CSSFunctionValue.cpp: >+ (WebCore::CSSFunctionValue::CSSFunctionValue): >+ * css/CSSGradientValue.h: >+ (WebCore::CSSGradientValue::isLinearGradient): >+ (WebCore::CSSGradientValue::isRadialGradient): >+ (WebCore::CSSGradientValue::CSSGradientValue): >+ (WebCore::CSSLinearGradientValue::CSSLinearGradientValue): >+ (WebCore::CSSRadialGradientValue::CSSRadialGradientValue): >+ * css/CSSImageGeneratorValue.cpp: >+ (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue): >+ * css/CSSImageGeneratorValue.h: >+ * css/CSSImageValue.cpp: >+ (WebCore::CSSImageValue::CSSImageValue): >+ * css/CSSImageValue.h: >+ * css/CSSInheritedValue.h: >+ (WebCore::CSSInheritedValue::CSSInheritedValue): >+ * css/CSSInitialValue.h: >+ (WebCore::CSSInitialValue::CSSInitialValue): >+ (WebCore::CSSInitialValue::create): >+ * css/CSSLineBoxContainValue.cpp: >+ (WebCore::CSSLineBoxContainValue::CSSLineBoxContainValue): >+ * css/CSSLineBoxContainValue.h: >+ * css/CSSMutableValue.h: >+ (WebCore::CSSMutableValue::CSSMutableValue): >+ * css/CSSPrimitiveValue.cpp: >+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): >+ * css/CSSPrimitiveValue.h: >+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): >+ * css/CSSPrimitiveValueMappings.h: >+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): >+ * css/CSSReflectValue.h: >+ (WebCore::CSSReflectValue::CSSReflectValue): >+ * css/CSSTimingFunctionValue.h: >+ (WebCore::CSSTimingFunctionValue::isLinearTimingFunctionValue): >+ (WebCore::CSSTimingFunctionValue::isCubicBezierTimingFunctionValue): >+ (WebCore::CSSTimingFunctionValue::isStepsTimingFunctionValue): >+ (WebCore::CSSTimingFunctionValue::CSSTimingFunctionValue): >+ (WebCore::CSSLinearTimingFunctionValue::CSSLinearTimingFunctionValue): >+ (WebCore::CSSCubicBezierTimingFunctionValue::CSSCubicBezierTimingFunctionValue): >+ (WebCore::CSSStepsTimingFunctionValue::CSSStepsTimingFunctionValue): >+ * css/CSSUnicodeRangeValue.h: >+ (WebCore::CSSUnicodeRangeValue::CSSUnicodeRangeValue): >+ * css/CSSValueList.cpp: >+ (WebCore::CSSValueList::CSSValueList): >+ * css/CSSValueList.h: >+ * css/FontFamilyValue.cpp: >+ (WebCore::FontFamilyValue::FontFamilyValue): >+ * css/FontFamilyValue.h: >+ * css/FontFeatureValue.cpp: >+ (WebCore::FontFeatureValue::FontFeatureValue): >+ * css/FontFeatureValue.h: >+ * css/FontValue.h: >+ (WebCore::FontValue::FontValue): >+ * css/ShadowValue.cpp: >+ (WebCore::ShadowValue::ShadowValue): >+ * css/ShadowValue.h: >+ * css/WebKitCSSFilterValue.cpp: >+ (WebCore::WebKitCSSFilterValue::WebKitCSSFilterValue): >+ * css/WebKitCSSFilterValue.h: >+ * css/WebKitCSSTransformValue.cpp: >+ (WebCore::WebKitCSSTransformValue::WebKitCSSTransformValue): >+ * css/WebKitCSSTransformValue.h: >+ * svg/SVGColor.cpp: >+ (WebCore::SVGColor::SVGColor): >+ * svg/SVGColor.h: >+ * svg/SVGPaint.cpp: >+ (WebCore::SVGPaint::SVGPaint): >+ * svg/SVGPaint.h: >+ >+ Propagate subclass type information and kill isFooType() virtuals. >+ >+2011-11-07 Andreas Kling <kling@webkit.org> >+ > Don't use CSSOM's CSSValue.cssValueType internally in WebCore. > <http://webkit.org/b/71679> > >diff --git a/Source/WebCore/GNUmakefile.list.am b/Source/WebCore/GNUmakefile.list.am >index a9c2bb5..9871da5 100644 >--- a/Source/WebCore/GNUmakefile.list.am >+++ b/Source/WebCore/GNUmakefile.list.am >@@ -1064,6 +1064,7 @@ webcore_sources += \ > Source/WebCore/css/CSSUnicodeRangeValue.cpp \ > Source/WebCore/css/CSSUnicodeRangeValue.h \ > Source/WebCore/css/CSSUnknownRule.h \ >+ Source/WebCore/css/CSSValue.cpp \ > Source/WebCore/css/CSSValue.h \ > Source/WebCore/css/CSSValueList.cpp \ > Source/WebCore/css/CSSValueList.h \ >diff --git a/Source/WebCore/Target.pri b/Source/WebCore/Target.pri >index 87d54a2..a110d4e 100644 >--- a/Source/WebCore/Target.pri >+++ b/Source/WebCore/Target.pri >@@ -444,6 +444,7 @@ SOURCES += \ > css/CSSStyleSheet.cpp \ > css/CSSTimingFunctionValue.cpp \ > css/CSSUnicodeRangeValue.cpp \ >+ css/CSSValue.cpp \ > css/CSSValueList.cpp \ > css/CSSWrapShapes.cpp \ > css/FontFamilyValue.cpp \ >@@ -1534,6 +1535,8 @@ HEADERS += \ > css/CSSStyleSheet.h \ > css/CSSTimingFunctionValue.h \ > css/CSSUnicodeRangeValue.h \ >+ css/CSSValue.cpp \ >+ css/CSSValue.h \ > css/CSSValueList.h \ > css/CSSWrapShapes.h \ > css/FontFamilyValue.h \ >diff --git a/Source/WebCore/WebCore.gypi b/Source/WebCore/WebCore.gypi >index ba0ce26..a9453b7 100644 >--- a/Source/WebCore/WebCore.gypi >+++ b/Source/WebCore/WebCore.gypi >@@ -2419,6 +2419,7 @@ > 'css/CSSUnicodeRangeValue.cpp', > 'css/CSSUnicodeRangeValue.h', > 'css/CSSUnknownRule.h', >+ 'css/CSSValue.cpp', > 'css/CSSValueList.cpp', > 'css/CSSWrapShapes.cpp', > 'css/Counter.h', >diff --git a/Source/WebCore/WebCore.vcproj/WebCore.vcproj b/Source/WebCore/WebCore.vcproj/WebCore.vcproj >index 5bf1daa..5c562df 100755 >--- a/Source/WebCore/WebCore.vcproj/WebCore.vcproj >+++ b/Source/WebCore/WebCore.vcproj/WebCore.vcproj >@@ -32706,6 +32706,10 @@ > > > </File> > <File >+ RelativePath="..\css\CSSValue.cpp" >+ > >+ </File> >+ <File > RelativePath="..\css\CSSValue.h" > > > </File> >diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >index c1dc6bb..0326bc4 100644 >--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj >+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >@@ -4138,6 +4138,7 @@ > ABC128770B33AA6D00C693D5 /* PopupMenuClient.h in Headers */ = {isa = PBXBuildFile; fileRef = ABC128760B33AA6D00C693D5 /* PopupMenuClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; > ABDDFE790A5C6E7000A3E11D /* RenderMenuList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABDDFE730A5C6E6F00A3E11D /* RenderMenuList.cpp */; }; > ABDDFE7A0A5C6E7000A3E11D /* RenderMenuList.h in Headers */ = {isa = PBXBuildFile; fileRef = ABDDFE740A5C6E7000A3E11D /* RenderMenuList.h */; }; >+ AD03AAFA1468455300A39B5B /* CSSValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD03AAF81468453900A39B5B /* CSSValue.cpp */; }; > AD4495F3141FC08900541EDF /* EventListenerMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD4495F1141FC08900541EDF /* EventListenerMap.cpp */; }; > AD4495F4141FC08900541EDF /* EventListenerMap.h in Headers */ = {isa = PBXBuildFile; fileRef = AD4495F2141FC08900541EDF /* EventListenerMap.h */; settings = {ATTRIBUTES = (Private, ); }; }; > ADDF1AD71257CD9A0003A759 /* RenderSVGPath.h in Headers */ = {isa = PBXBuildFile; fileRef = ADDF1AD51257CD9A0003A759 /* RenderSVGPath.h */; }; >@@ -11232,6 +11233,7 @@ > ABC128760B33AA6D00C693D5 /* PopupMenuClient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PopupMenuClient.h; sourceTree = "<group>"; }; > ABDDFE730A5C6E6F00A3E11D /* RenderMenuList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMenuList.cpp; sourceTree = "<group>"; }; > ABDDFE740A5C6E7000A3E11D /* RenderMenuList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderMenuList.h; sourceTree = "<group>"; }; >+ AD03AAF81468453900A39B5B /* CSSValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSSValue.cpp; sourceTree = "<group>"; }; > AD4495F1141FC08900541EDF /* EventListenerMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EventListenerMap.cpp; sourceTree = "<group>"; }; > AD4495F2141FC08900541EDF /* EventListenerMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventListenerMap.h; sourceTree = "<group>"; }; > ADDF1AD41257CD9A0003A759 /* RenderSVGPath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGPath.cpp; sourceTree = "<group>"; }; >@@ -20505,6 +20507,7 @@ > F523D18402DE42E8018635CA /* css */ = { > isa = PBXGroup; > children = ( >+ AD03AAF81468453900A39B5B /* CSSValue.cpp */, > CAE9F90D146441F000C245B0 /* CSSAspectRatioValue.cpp */, > CAE9F90E146441F000C245B0 /* CSSAspectRatioValue.h */, > 93CA4C9C09DF93FA00DF8677 /* maketokenizer */, >@@ -24967,6 +24970,7 @@ > isa = PBXSourcesBuildPhase; > buildActionMask = 2147483647; > files = ( >+ AD03AAFA1468455300A39B5B /* CSSValue.cpp in Sources */, > B5B5DC69119BB3D5002A8790 /* AbstractDatabase.cpp in Sources */, > 41E1B1D00FF5986900576B3B /* AbstractWorker.cpp in Sources */, > 0F29C16E1300C2E2002D794E /* AccessibilityAllInOne.cpp in Sources */, >diff --git a/Source/WebCore/css/CSSAspectRatioValue.h b/Source/WebCore/css/CSSAspectRatioValue.h >index fe0945e..37bec9d 100644 >--- a/Source/WebCore/css/CSSAspectRatioValue.h >+++ b/Source/WebCore/css/CSSAspectRatioValue.h >@@ -50,7 +50,8 @@ public: > > private: > CSSAspectRatioValue(float numeratorValue, float denominatorValue) >- : m_numeratorValue(numeratorValue) >+ : CSSValue(AspectRatioClass) >+ , m_numeratorValue(numeratorValue) > , m_denominatorValue(denominatorValue) > { > } >diff --git a/Source/WebCore/css/CSSBorderImageSliceValue.cpp b/Source/WebCore/css/CSSBorderImageSliceValue.cpp >index bce30aa..3bdcbdb 100644 >--- a/Source/WebCore/css/CSSBorderImageSliceValue.cpp >+++ b/Source/WebCore/css/CSSBorderImageSliceValue.cpp >@@ -32,7 +32,8 @@ > namespace WebCore { > > CSSBorderImageSliceValue::CSSBorderImageSliceValue(PassRefPtr<CSSPrimitiveValue> slices, bool fill) >- : m_slices(slices) >+ : CSSValue(BorderImageSliceClass) >+ , m_slices(slices) > , m_fill(fill) > { > } >diff --git a/Source/WebCore/css/CSSBorderImageSliceValue.h b/Source/WebCore/css/CSSBorderImageSliceValue.h >index c6adbaa..b7f1f03 100644 >--- a/Source/WebCore/css/CSSBorderImageSliceValue.h >+++ b/Source/WebCore/css/CSSBorderImageSliceValue.h >@@ -53,7 +53,6 @@ public: > > private: > CSSBorderImageSliceValue(PassRefPtr<CSSPrimitiveValue> slices, bool fill); >- virtual bool isBorderImageSliceValue() const { return true; } > }; > > } // namespace WebCore >diff --git a/Source/WebCore/css/CSSBorderImageValue.cpp b/Source/WebCore/css/CSSBorderImageValue.cpp >index 825d0fb..7c0a34b 100644 >--- a/Source/WebCore/css/CSSBorderImageValue.cpp >+++ b/Source/WebCore/css/CSSBorderImageValue.cpp >@@ -28,7 +28,8 @@ namespace WebCore { > > CSSBorderImageValue::CSSBorderImageValue(PassRefPtr<CSSValue> image, PassRefPtr<CSSBorderImageSliceValue> imageSlice, > PassRefPtr<CSSValue> borderSlice, PassRefPtr<CSSValue> outset, PassRefPtr<CSSValue> repeat) >- : m_image(image) >+ : CSSValue(BorderImageClass) >+ , m_image(image) > , m_imageSlice(imageSlice) > , m_borderSlice(borderSlice) > , m_outset(outset) >diff --git a/Source/WebCore/css/CSSBorderImageValue.h b/Source/WebCore/css/CSSBorderImageValue.h >index 6901a6a..c5fa879 100644 >--- a/Source/WebCore/css/CSSBorderImageValue.h >+++ b/Source/WebCore/css/CSSBorderImageValue.h >@@ -64,7 +64,6 @@ public: > private: > CSSBorderImageValue(PassRefPtr<CSSValue> image, PassRefPtr<CSSBorderImageSliceValue>, PassRefPtr<CSSValue> borderSlice, > PassRefPtr<CSSValue> outset, PassRefPtr<CSSValue> repeat); >- virtual bool isBorderImageValue() const { return true; } > }; > > } // namespace WebCore >diff --git a/Source/WebCore/css/CSSCanvasValue.h b/Source/WebCore/css/CSSCanvasValue.h >index 6f38985..4cee2f7 100644 >--- a/Source/WebCore/css/CSSCanvasValue.h >+++ b/Source/WebCore/css/CSSCanvasValue.h >@@ -48,7 +48,8 @@ public: > > private: > CSSCanvasValue() >- : m_element(0) >+ : CSSImageGeneratorValue(CanvasClass) >+ , m_element(0) > { > } > >diff --git a/Source/WebCore/css/CSSCrossfadeValue.h b/Source/WebCore/css/CSSCrossfadeValue.h >index 565975a..403182e 100644 >--- a/Source/WebCore/css/CSSCrossfadeValue.h >+++ b/Source/WebCore/css/CSSCrossfadeValue.h >@@ -50,8 +50,9 @@ public: > > private: > CSSCrossfadeValue(PassRefPtr<CSSImageValue> fromImage, PassRefPtr<CSSImageValue> toImage) >- : m_fromImage(fromImage) >- , m_toImage(toImage) >+ : CSSImageGeneratorValue(CrossfadeClass) >+ , m_fromImage(fromImage) >+ , m_toImage(toImage) > { > } > >diff --git a/Source/WebCore/css/CSSCursorImageValue.cpp b/Source/WebCore/css/CSSCursorImageValue.cpp >index 24ef8ff..9d1fa2d 100644 >--- a/Source/WebCore/css/CSSCursorImageValue.cpp >+++ b/Source/WebCore/css/CSSCursorImageValue.cpp >@@ -54,7 +54,7 @@ static inline SVGCursorElement* resourceReferencedByCursorElement(const String& > #endif > > CSSCursorImageValue::CSSCursorImageValue(const String& url, const IntPoint& hotSpot) >- : CSSImageValue(url) >+ : CSSImageValue(CursorImageClass, url) > , m_hotSpot(hotSpot) > { > } >diff --git a/Source/WebCore/css/CSSCursorImageValue.h b/Source/WebCore/css/CSSCursorImageValue.h >index de03eb8..2a95c3ab 100644 >--- a/Source/WebCore/css/CSSCursorImageValue.h >+++ b/Source/WebCore/css/CSSCursorImageValue.h >@@ -50,7 +50,6 @@ public: > > private: > CSSCursorImageValue(const String& url, const IntPoint& hotSpot); >- virtual bool isCursorImageValue() const { return true; } > > IntPoint m_hotSpot; > >diff --git a/Source/WebCore/css/CSSFlexValue.h b/Source/WebCore/css/CSSFlexValue.h >index a03bffc..c2662ee 100644 >--- a/Source/WebCore/css/CSSFlexValue.h >+++ b/Source/WebCore/css/CSSFlexValue.h >@@ -47,15 +47,14 @@ public: > > virtual String cssText() const; > >- virtual bool isFlexValue() const { return true; } >- > float positiveFlex() { return m_positiveFlex; } > float negativeFlex() { return m_negativeFlex; } > CSSPrimitiveValue* preferredSize() { return m_preferredSize.get(); } > > private: > CSSFlexValue(float positiveFlex, float negativeFlex, PassRefPtr<CSSPrimitiveValue> preferredSize) >- : m_positiveFlex(positiveFlex) >+ : CSSValue(FlexClass) >+ , m_positiveFlex(positiveFlex) > , m_negativeFlex(negativeFlex) > , m_preferredSize(preferredSize) > { >diff --git a/Source/WebCore/css/CSSFontFaceSrcValue.h b/Source/WebCore/css/CSSFontFaceSrcValue.h >index baefb62..4442865 100644 >--- a/Source/WebCore/css/CSSFontFaceSrcValue.h >+++ b/Source/WebCore/css/CSSFontFaceSrcValue.h >@@ -68,7 +68,8 @@ public: > > private: > CSSFontFaceSrcValue(const String& resource, bool local) >- : m_resource(resource) >+ : CSSValue(FontFaceSrcClass) >+ , m_resource(resource) > , m_isLocal(local) > #if ENABLE(SVG_FONTS) > , m_svgFontFaceElement(0) >diff --git a/Source/WebCore/css/CSSFunctionValue.cpp b/Source/WebCore/css/CSSFunctionValue.cpp >index d33f204..493cbb2 100644 >--- a/Source/WebCore/css/CSSFunctionValue.cpp >+++ b/Source/WebCore/css/CSSFunctionValue.cpp >@@ -33,7 +33,8 @@ > namespace WebCore { > > CSSFunctionValue::CSSFunctionValue(CSSParserFunction* function) >- : m_name(function->name) >+ : CSSValue(FunctionClass) >+ , m_name(function->name) > { > if (function->args) > m_args = CSSValueList::createFromParserValueList(function->args.get()); >diff --git a/Source/WebCore/css/CSSGradientValue.h b/Source/WebCore/css/CSSGradientValue.h >index 44ee1c8..0711de2 100644 >--- a/Source/WebCore/css/CSSGradientValue.h >+++ b/Source/WebCore/css/CSSGradientValue.h >@@ -59,16 +59,17 @@ public: > > void sortStopsIfNeeded(); > >- virtual bool isLinearGradient() const { return false; } >- virtual bool isRadialGradient() const { return false; } >+ bool isLinearGradient() const { return classType() == LinearGradientClass; } >+ bool isRadialGradient() const { return classType() == RadialGradientClass; } > > bool isRepeating() const { return m_repeating; } > > bool deprecatedType() const { return m_deprecatedType; } // came from -webkit-gradient > > protected: >- CSSGradientValue(CSSGradientRepeat repeat, bool deprecatedType = false) >- : m_stopsSorted(false) >+ CSSGradientValue(ClassType classType, CSSGradientRepeat repeat, bool deprecatedType = false) >+ : CSSImageGeneratorValue(classType) >+ , m_stopsSorted(false) > , m_deprecatedType(deprecatedType) > , m_repeating(repeat == Repeating) > { >@@ -112,12 +113,10 @@ public: > > private: > CSSLinearGradientValue(CSSGradientRepeat repeat, bool deprecatedType = false) >- : CSSGradientValue(repeat, deprecatedType) >+ : CSSGradientValue(LinearGradientClass, repeat, deprecatedType) > { > } > >- virtual bool isLinearGradient() const { return true; } >- > // Create the gradient for a given size. > virtual PassRefPtr<Gradient> createGradient(RenderObject*, const IntSize&); > >@@ -144,12 +143,10 @@ public: > > private: > CSSRadialGradientValue(CSSGradientRepeat repeat, bool deprecatedType = false) >- : CSSGradientValue(repeat, deprecatedType) >+ : CSSGradientValue(RadialGradientClass, repeat, deprecatedType) > { > } > >- virtual bool isRadialGradient() const { return true; } >- > // Create the gradient for a given size. > virtual PassRefPtr<Gradient> createGradient(RenderObject*, const IntSize&); > >diff --git a/Source/WebCore/css/CSSImageGeneratorValue.cpp b/Source/WebCore/css/CSSImageGeneratorValue.cpp >index 4ef44f0..258ef0e 100644 >--- a/Source/WebCore/css/CSSImageGeneratorValue.cpp >+++ b/Source/WebCore/css/CSSImageGeneratorValue.cpp >@@ -35,8 +35,9 @@ > > namespace WebCore { > >-CSSImageGeneratorValue::CSSImageGeneratorValue() >-: m_accessedImage(false) >+CSSImageGeneratorValue::CSSImageGeneratorValue(ClassType classType) >+ : CSSValue(classType) >+ , m_accessedImage(false) > { > } > >diff --git a/Source/WebCore/css/CSSImageGeneratorValue.h b/Source/WebCore/css/CSSImageGeneratorValue.h >index fe391f5..bf993aa 100644 >--- a/Source/WebCore/css/CSSImageGeneratorValue.h >+++ b/Source/WebCore/css/CSSImageGeneratorValue.h >@@ -49,7 +49,7 @@ public: > virtual IntSize fixedSize(const RenderObject*) { return IntSize(); } > > protected: >- CSSImageGeneratorValue(); >+ CSSImageGeneratorValue(ClassType); > > Image* getImage(RenderObject*, const IntSize&); > void putImage(const IntSize&, PassRefPtr<Image>); >@@ -58,9 +58,6 @@ protected: > ImageBySizeCache m_imageCache; > RefPtr<StyleGeneratedImage> m_image; > bool m_accessedImage; >- >-private: >- virtual bool isImageGeneratorValue() const { return true; } > }; > > } // namespace WebCore >diff --git a/Source/WebCore/css/CSSImageValue.cpp b/Source/WebCore/css/CSSImageValue.cpp >index 2ce486e..73f53c1 100644 >--- a/Source/WebCore/css/CSSImageValue.cpp >+++ b/Source/WebCore/css/CSSImageValue.cpp >@@ -31,18 +31,24 @@ > > namespace WebCore { > >-CSSImageValue::CSSImageValue(const String& url) >- : CSSPrimitiveValue(url, CSS_URI) >+CSSImageValue::CSSImageValue(ClassType classType, const String& url) >+ : CSSPrimitiveValue(classType, url, CSS_URI) > , m_accessedImage(false) > { > } > > CSSImageValue::CSSImageValue() >- : CSSPrimitiveValue(CSSValueNone) >+ : CSSPrimitiveValue(ImageClass, CSSValueNone) > , m_accessedImage(true) > { > } > >+CSSImageValue::CSSImageValue(const String& url) >+ : CSSPrimitiveValue(ImageClass, url, CSS_URI) >+ , m_accessedImage(false) >+{ >+} >+ > CSSImageValue::~CSSImageValue() > { > } >diff --git a/Source/WebCore/css/CSSImageValue.h b/Source/WebCore/css/CSSImageValue.h >index 347ed39..1cfc5b9 100644 >--- a/Source/WebCore/css/CSSImageValue.h >+++ b/Source/WebCore/css/CSSImageValue.h >@@ -42,7 +42,7 @@ public: > StyleImage* cachedOrPendingImage(); > > protected: >- CSSImageValue(const String& url); >+ CSSImageValue(ClassType, const String& url); > > StyleCachedImage* cachedImage(CachedResourceLoader*, const String& url); > String cachedImageURL(); >@@ -50,7 +50,7 @@ protected: > > private: > CSSImageValue(); >- virtual bool isImageValue() const { return true; } >+ CSSImageValue(const String& url); > > RefPtr<StyleImage> m_image; > bool m_accessedImage; >diff --git a/Source/WebCore/css/CSSInheritedValue.h b/Source/WebCore/css/CSSInheritedValue.h >index f902812..faeaa7e 100644 >--- a/Source/WebCore/css/CSSInheritedValue.h >+++ b/Source/WebCore/css/CSSInheritedValue.h >@@ -37,11 +37,9 @@ public: > > private: > CSSInheritedValue() >- : CSSValue(CSS_INHERIT) >+ : CSSValue(InheritedClass) > { > } >- >- virtual bool isInheritedValue() const { return true; } > }; > > } // namespace WebCore >diff --git a/Source/WebCore/css/CSSInitialValue.h b/Source/WebCore/css/CSSInitialValue.h >index 1e2bd76..05f0d51 100644 >--- a/Source/WebCore/css/CSSInitialValue.h >+++ b/Source/WebCore/css/CSSInitialValue.h >@@ -43,8 +43,7 @@ public: > > private: > CSSInitialValue(bool implicit) >- : CSSValue(CSS_INITIAL) >- , m_implicit(implicit) >+ : CSSValue(implicit ? ImplicitInitialClass : InitialClass) > { > } > >@@ -52,11 +51,6 @@ private: > { > return adoptRef(new CSSInitialValue(implicit)); > } >- >- virtual bool isInitialValue() const { return true; } >- virtual bool isImplicitInitialValue() const { return m_implicit; } >- >- bool m_implicit; > }; > > } // namespace WebCore >diff --git a/Source/WebCore/css/CSSLineBoxContainValue.cpp b/Source/WebCore/css/CSSLineBoxContainValue.cpp >index b029285..0f7a1c4 100644 >--- a/Source/WebCore/css/CSSLineBoxContainValue.cpp >+++ b/Source/WebCore/css/CSSLineBoxContainValue.cpp >@@ -32,7 +32,8 @@ > namespace WebCore { > > CSSLineBoxContainValue::CSSLineBoxContainValue(unsigned value) >- : m_value(value) >+ : CSSValue(LineBoxContainClass) >+ , m_value(value) > { > } > >diff --git a/Source/WebCore/css/CSSLineBoxContainValue.h b/Source/WebCore/css/CSSLineBoxContainValue.h >index 8d62b11..be99b0b 100644 >--- a/Source/WebCore/css/CSSLineBoxContainValue.h >+++ b/Source/WebCore/css/CSSLineBoxContainValue.h >@@ -55,7 +55,6 @@ private: > > private: > CSSLineBoxContainValue(LineBoxContain); >- virtual bool isCSSLineBoxContainValue() const { return true; } > }; > > } // namespace >diff --git a/Source/WebCore/css/CSSMutableValue.h b/Source/WebCore/css/CSSMutableValue.h >index 8a3aa72..74ea5ee 100644 >--- a/Source/WebCore/css/CSSMutableValue.h >+++ b/Source/WebCore/css/CSSMutableValue.h >@@ -27,13 +27,7 @@ namespace WebCore { > > class CSSMutableValue : public CSSValue { > public: >- CSSMutableValue() >- : m_node(0) >- { >- } >- > virtual ~CSSMutableValue() { } >- virtual bool isMutableValue() const { return true; } > > Node* node() const { return m_node; } > void setNode(Node* node) { m_node = node; } >@@ -45,6 +39,14 @@ public: > m_node->setNeedsStyleRecalc(FullStyleChange); > } > >+protected: >+ CSSMutableValue(ClassType classType) >+ : CSSValue(classType) >+ , m_node(0) >+ { >+ } >+ >+ > private: > Node* m_node; > }; >diff --git a/Source/WebCore/css/CSSPrimitiveValue.cpp b/Source/WebCore/css/CSSPrimitiveValue.cpp >index 0f36404..0027ba5 100644 >--- a/Source/WebCore/css/CSSPrimitiveValue.cpp >+++ b/Source/WebCore/css/CSSPrimitiveValue.cpp >@@ -164,7 +164,7 @@ static const AtomicString& valueOrPropertyName(int valueOrPropertyID) > } > > CSSPrimitiveValue::CSSPrimitiveValue() >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(0) > , m_hasCachedCSSText(false) > , m_isQuirkValue(false) >@@ -172,7 +172,16 @@ CSSPrimitiveValue::CSSPrimitiveValue() > } > > CSSPrimitiveValue::CSSPrimitiveValue(int ident) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) >+ , m_type(CSS_IDENT) >+ , m_hasCachedCSSText(false) >+ , m_isQuirkValue(false) >+{ >+ m_value.ident = ident; >+} >+ >+CSSPrimitiveValue::CSSPrimitiveValue(ClassType classType, int ident) >+ : CSSValue(classType) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > , m_isQuirkValue(false) >@@ -181,7 +190,7 @@ CSSPrimitiveValue::CSSPrimitiveValue(int ident) > } > > CSSPrimitiveValue::CSSPrimitiveValue(double num, UnitTypes type) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(type) > , m_hasCachedCSSText(false) > , m_isQuirkValue(false) >@@ -191,7 +200,18 @@ CSSPrimitiveValue::CSSPrimitiveValue(double num, UnitTypes type) > } > > CSSPrimitiveValue::CSSPrimitiveValue(const String& str, UnitTypes type) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) >+ , m_type(type) >+ , m_hasCachedCSSText(false) >+ , m_isQuirkValue(false) >+{ >+ if ((m_value.string = str.impl())) >+ m_value.string->ref(); >+} >+ >+ >+CSSPrimitiveValue::CSSPrimitiveValue(ClassType classType, const String& str, UnitTypes type) >+ : CSSValue(classType) > , m_type(type) > , m_hasCachedCSSText(false) > , m_isQuirkValue(false) >@@ -201,7 +221,7 @@ CSSPrimitiveValue::CSSPrimitiveValue(const String& str, UnitTypes type) > } > > CSSPrimitiveValue::CSSPrimitiveValue(RGBA32 color) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_RGBCOLOR) > , m_hasCachedCSSText(false) > , m_isQuirkValue(false) >@@ -210,7 +230,7 @@ CSSPrimitiveValue::CSSPrimitiveValue(RGBA32 color) > } > > CSSPrimitiveValue::CSSPrimitiveValue(const Length& length) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_hasCachedCSSText(false) > , m_isQuirkValue(false) > { >diff --git a/Source/WebCore/css/CSSPrimitiveValue.h b/Source/WebCore/css/CSSPrimitiveValue.h >index f1af7b1..9a9cfa7 100644 >--- a/Source/WebCore/css/CSSPrimitiveValue.h >+++ b/Source/WebCore/css/CSSPrimitiveValue.h >@@ -214,25 +214,27 @@ public: > virtual void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*); > > protected: >- // FIXME: int vs. unsigned overloading is too subtle to distinguish the color and identifier cases. >- CSSPrimitiveValue(int ident); >- CSSPrimitiveValue(double, UnitTypes); >- CSSPrimitiveValue(const String&, UnitTypes); >+ CSSPrimitiveValue(ClassType, int ident); >+ CSSPrimitiveValue(ClassType, const String&, UnitTypes); > > private: > CSSPrimitiveValue(); >+ // FIXME: int vs. unsigned overloading is too subtle to distinguish the color and identifier cases. >+ CSSPrimitiveValue(int ident); > CSSPrimitiveValue(unsigned color); // RGB value > CSSPrimitiveValue(const Length&); >+ CSSPrimitiveValue(const String&, UnitTypes); >+ CSSPrimitiveValue(double, UnitTypes); > > template<typename T> CSSPrimitiveValue(T); // Defined in CSSPrimitiveValueMappings.h > template<typename T> CSSPrimitiveValue(T* val) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > { > init(PassRefPtr<T>(val)); > } > > template<typename T> CSSPrimitiveValue(PassRefPtr<T> val) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > { > init(val); > } >@@ -258,8 +260,6 @@ private: > > double computeLengthDouble(RenderStyle* currentStyle, RenderStyle* rootStyle, double multiplier, bool computingFontSize); > >- virtual bool isPrimitiveValue() const { return true; } >- > signed m_type : UnitTypesBits; > mutable unsigned m_hasCachedCSSText : 1; > unsigned m_isQuirkValue : 1; >diff --git a/Source/WebCore/css/CSSPrimitiveValueMappings.h b/Source/WebCore/css/CSSPrimitiveValueMappings.h >index a95fcc4..8b93a3c 100644 >--- a/Source/WebCore/css/CSSPrimitiveValueMappings.h >+++ b/Source/WebCore/css/CSSPrimitiveValueMappings.h >@@ -50,7 +50,7 @@ > namespace WebCore { > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(short i) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_NUMBER) > , m_hasCachedCSSText(false) > { >@@ -67,7 +67,7 @@ template<> inline CSSPrimitiveValue::operator short() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(unsigned short i) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_NUMBER) > , m_hasCachedCSSText(false) > { >@@ -84,7 +84,7 @@ template<> inline CSSPrimitiveValue::operator unsigned short() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(int i) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_NUMBER) > , m_hasCachedCSSText(false) > { >@@ -101,7 +101,7 @@ template<> inline CSSPrimitiveValue::operator int() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(unsigned i) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_NUMBER) > , m_hasCachedCSSText(false) > { >@@ -119,7 +119,7 @@ template<> inline CSSPrimitiveValue::operator unsigned() const > > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(float i) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_NUMBER) > , m_hasCachedCSSText(false) > { >@@ -136,7 +136,7 @@ template<> inline CSSPrimitiveValue::operator float() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ColumnSpan columnSpan) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_hasCachedCSSText(false) > { > switch (columnSpan) { >@@ -163,7 +163,7 @@ template<> inline CSSPrimitiveValue::operator ColumnSpan() const > > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(PrintColorAdjust value) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -192,7 +192,7 @@ template<> inline CSSPrimitiveValue::operator PrintColorAdjust() const > > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBorderStyle e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -245,7 +245,7 @@ template<> inline CSSPrimitiveValue::operator OutlineIsAuto() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(CompositeOperator e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -328,7 +328,7 @@ template<> inline CSSPrimitiveValue::operator CompositeOperator() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ControlPart e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -518,7 +518,7 @@ template<> inline CSSPrimitiveValue::operator ControlPart() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBackfaceVisibility e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -547,7 +547,7 @@ template<> inline CSSPrimitiveValue::operator EBackfaceVisibility() const > > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFillAttachment e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -580,7 +580,7 @@ template<> inline CSSPrimitiveValue::operator EFillAttachment() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFillBox e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -622,7 +622,7 @@ template<> inline CSSPrimitiveValue::operator EFillBox() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFillRepeat e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -660,7 +660,7 @@ template<> inline CSSPrimitiveValue::operator EFillRepeat() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxAlignment e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -708,7 +708,7 @@ template<> inline CSSPrimitiveValue::operator EBoxAlignment() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxSizing e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -736,7 +736,7 @@ template<> inline CSSPrimitiveValue::operator EBoxSizing() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxDirection e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -764,7 +764,7 @@ template<> inline CSSPrimitiveValue::operator EBoxDirection() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxLines e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -792,7 +792,7 @@ template<> inline CSSPrimitiveValue::operator EBoxLines() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxOrient e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -822,7 +822,7 @@ template<> inline CSSPrimitiveValue::operator EBoxOrient() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ECaptionSide e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -860,7 +860,7 @@ template<> inline CSSPrimitiveValue::operator ECaptionSide() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EClear e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -898,7 +898,7 @@ template<> inline CSSPrimitiveValue::operator EClear() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ECursor e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1024,7 +1024,7 @@ template<> inline CSSPrimitiveValue::operator ECursor() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EDisplay e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1105,7 +1105,7 @@ template<> inline CSSPrimitiveValue::operator EDisplay() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EEmptyCell e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1133,7 +1133,7 @@ template<> inline CSSPrimitiveValue::operator EEmptyCell() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFlexAlign e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1176,7 +1176,7 @@ template<> inline CSSPrimitiveValue::operator EFlexAlign() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFlexPack e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1214,7 +1214,7 @@ template<> inline CSSPrimitiveValue::operator EFlexPack() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFlexFlow e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1252,7 +1252,7 @@ template<> inline CSSPrimitiveValue::operator EFlexFlow() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFloat e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1291,7 +1291,7 @@ template<> inline CSSPrimitiveValue::operator EFloat() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EKHTMLLineBreak e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1319,7 +1319,7 @@ template<> inline CSSPrimitiveValue::operator EKHTMLLineBreak() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EListStylePosition e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1339,7 +1339,7 @@ template<> inline CSSPrimitiveValue::operator EListStylePosition() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EListStyleType e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1601,7 +1601,7 @@ template<> inline CSSPrimitiveValue::operator EListStyleType() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMarginCollapse e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1634,7 +1634,7 @@ template<> inline CSSPrimitiveValue::operator EMarginCollapse() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMarqueeBehavior e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1672,7 +1672,7 @@ template<> inline CSSPrimitiveValue::operator EMarqueeBehavior() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(RegionOverflow e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1700,7 +1700,7 @@ template<> inline CSSPrimitiveValue::operator RegionOverflow() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMarqueeDirection e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1755,7 +1755,7 @@ template<> inline CSSPrimitiveValue::operator EMarqueeDirection() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMatchNearestMailBlockquoteColor e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1783,7 +1783,7 @@ template<> inline CSSPrimitiveValue::operator EMatchNearestMailBlockquoteColor() > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ENBSPMode e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1811,7 +1811,7 @@ template<> inline CSSPrimitiveValue::operator ENBSPMode() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EOverflow e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1859,7 +1859,7 @@ template<> inline CSSPrimitiveValue::operator EOverflow() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EPageBreak e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1894,7 +1894,7 @@ template<> inline CSSPrimitiveValue::operator EPageBreak() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EPosition e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1932,7 +1932,7 @@ template<> inline CSSPrimitiveValue::operator EPosition() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EResize e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -1973,7 +1973,7 @@ template<> inline CSSPrimitiveValue::operator EResize() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETableLayout e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2001,7 +2001,7 @@ template<> inline CSSPrimitiveValue::operator ETableLayout() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextAlign e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2071,7 +2071,7 @@ template<> inline CSSPrimitiveValue::operator ETextDecoration() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextSecurity e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2109,7 +2109,7 @@ template<> inline CSSPrimitiveValue::operator ETextSecurity() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextTransform e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2147,7 +2147,7 @@ template<> inline CSSPrimitiveValue::operator ETextTransform() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUnicodeBidi e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2190,7 +2190,7 @@ template<> inline CSSPrimitiveValue::operator EUnicodeBidi() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUserDrag e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2223,7 +2223,7 @@ template<> inline CSSPrimitiveValue::operator EUserDrag() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUserModify e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2246,7 +2246,7 @@ template<> inline CSSPrimitiveValue::operator EUserModify() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUserSelect e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2276,7 +2276,7 @@ template<> inline CSSPrimitiveValue::operator EUserSelect() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EVerticalAlign a) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2341,7 +2341,7 @@ template<> inline CSSPrimitiveValue::operator EVerticalAlign() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EVisibility e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2374,7 +2374,7 @@ template<> inline CSSPrimitiveValue::operator EVisibility() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWhiteSpace e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2422,7 +2422,7 @@ template<> inline CSSPrimitiveValue::operator EWhiteSpace() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWordBreak e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2455,7 +2455,7 @@ template<> inline CSSPrimitiveValue::operator EWordBreak() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWordWrap e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2483,7 +2483,7 @@ template<> inline CSSPrimitiveValue::operator EWordWrap() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextDirection e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2511,7 +2511,7 @@ template<> inline CSSPrimitiveValue::operator TextDirection() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(WritingMode e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2549,7 +2549,7 @@ template<> inline CSSPrimitiveValue::operator WritingMode() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextCombine e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2577,7 +2577,7 @@ template<> inline CSSPrimitiveValue::operator TextCombine() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextEmphasisPosition position) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2605,7 +2605,7 @@ template<> inline CSSPrimitiveValue::operator TextEmphasisPosition() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextOverflow overflow) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2633,7 +2633,7 @@ template<> inline CSSPrimitiveValue::operator TextOverflow() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextEmphasisFill fill) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2661,7 +2661,7 @@ template<> inline CSSPrimitiveValue::operator TextEmphasisFill() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextEmphasisMark mark) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2712,7 +2712,7 @@ template<> inline CSSPrimitiveValue::operator TextEmphasisMark() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextOrientation e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2740,7 +2740,7 @@ template<> inline CSSPrimitiveValue::operator TextOrientation() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EPointerEvents e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2808,7 +2808,7 @@ template<> inline CSSPrimitiveValue::operator EPointerEvents() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(FontSmoothingMode smoothing) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2849,7 +2849,7 @@ template<> inline CSSPrimitiveValue::operator FontSmoothingMode() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(FontWeight weight) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2919,7 +2919,7 @@ template<> inline CSSPrimitiveValue::operator FontWeight() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(FontItalic italic) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2951,7 +2951,7 @@ template<> inline CSSPrimitiveValue::operator FontItalic() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(FontSmallCaps smallCaps) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -2981,7 +2981,7 @@ template<> inline CSSPrimitiveValue::operator FontSmallCaps() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextRenderingMode e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3019,7 +3019,7 @@ template<> inline CSSPrimitiveValue::operator TextRenderingMode() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ColorSpace space) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3052,7 +3052,7 @@ template<> inline CSSPrimitiveValue::operator ColorSpace() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(Hyphens hyphens) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3085,7 +3085,7 @@ template<> inline CSSPrimitiveValue::operator Hyphens() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ESpeak e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3125,7 +3125,7 @@ template<> inline CSSPrimitiveValue::operator Order() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(Order e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3163,7 +3163,7 @@ template<> inline CSSPrimitiveValue::operator ESpeak() const > #if ENABLE(SVG) > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(LineCap e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3196,7 +3196,7 @@ template<> inline CSSPrimitiveValue::operator LineCap() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(LineJoin e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3229,7 +3229,7 @@ template<> inline CSSPrimitiveValue::operator LineJoin() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(WindRule e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3258,7 +3258,7 @@ template<> inline CSSPrimitiveValue::operator WindRule() const > > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EAlignmentBaseline e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3338,7 +3338,7 @@ template<> inline CSSPrimitiveValue::operator EAlignmentBaseline() const > #endif > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBorderCollapse e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3366,7 +3366,7 @@ template<> inline CSSPrimitiveValue::operator EBorderCollapse() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBorderFit e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3394,7 +3394,7 @@ template<> inline CSSPrimitiveValue::operator EBorderFit() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EImageRendering e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3432,7 +3432,7 @@ template<> inline CSSPrimitiveValue::operator EImageRendering() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETransformStyle3D e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3460,7 +3460,7 @@ template<> inline CSSPrimitiveValue::operator ETransformStyle3D() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ColumnAxis e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3495,7 +3495,7 @@ template<> inline CSSPrimitiveValue::operator ColumnAxis() const > #if ENABLE(SVG) > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EColorInterpolation e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3528,7 +3528,7 @@ template<> inline CSSPrimitiveValue::operator EColorInterpolation() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EColorRendering e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3561,7 +3561,7 @@ template<> inline CSSPrimitiveValue::operator EColorRendering() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EDominantBaseline e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3639,7 +3639,7 @@ template<> inline CSSPrimitiveValue::operator EDominantBaseline() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EShapeRendering e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3677,7 +3677,7 @@ template<> inline CSSPrimitiveValue::operator EShapeRendering() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextAnchor e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3710,7 +3710,7 @@ template<> inline CSSPrimitiveValue::operator ETextAnchor() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(SVGWritingMode e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >@@ -3758,7 +3758,7 @@ template<> inline CSSPrimitiveValue::operator SVGWritingMode() const > } > > template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EVectorEffect e) >- : CSSValue(CSS_PRIMITIVE_VALUE) >+ : CSSValue(PrimitiveClass) > , m_type(CSS_IDENT) > , m_hasCachedCSSText(false) > { >diff --git a/Source/WebCore/css/CSSReflectValue.h b/Source/WebCore/css/CSSReflectValue.h >index 58076ea..2727881 100644 >--- a/Source/WebCore/css/CSSReflectValue.h >+++ b/Source/WebCore/css/CSSReflectValue.h >@@ -52,16 +52,14 @@ public: > virtual void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*); > > private: >- CSSReflectValue(CSSReflectionDirection direction, >- PassRefPtr<CSSPrimitiveValue> offset, PassRefPtr<CSSValue> mask) >- : m_direction(direction) >+ CSSReflectValue(CSSReflectionDirection direction, PassRefPtr<CSSPrimitiveValue> offset, PassRefPtr<CSSValue> mask) >+ : CSSValue(ReflectClass) >+ , m_direction(direction) > , m_offset(offset) > , m_mask(mask) > { > } > >- virtual bool isReflectValue() const { return true; } >- > CSSReflectionDirection m_direction; > RefPtr<CSSPrimitiveValue> m_offset; > RefPtr<CSSValue> m_mask; >diff --git a/Source/WebCore/css/CSSTimingFunctionValue.h b/Source/WebCore/css/CSSTimingFunctionValue.h >index e3691f4..0bf98a8 100644 >--- a/Source/WebCore/css/CSSTimingFunctionValue.h >+++ b/Source/WebCore/css/CSSTimingFunctionValue.h >@@ -35,16 +35,15 @@ class CSSTimingFunctionValue : public CSSValue { > public: > virtual String cssText() const = 0; > >- virtual bool isLinearTimingFunctionValue() const { return false; } >- virtual bool isCubicBezierTimingFunctionValue() const { return false; } >- virtual bool isStepsTimingFunctionValue() const { return false; } >+ bool isLinearTimingFunctionValue() const { return classType() == LinearTimingFunctionClass; } >+ bool isCubicBezierTimingFunctionValue() const { return classType() == CubicBezierTimingFunctionClass; } >+ bool isStepsTimingFunctionValue() const { return classType() == StepsTimingFunctionClass; } > > protected: >- CSSTimingFunctionValue() >+ CSSTimingFunctionValue(ClassType classType) >+ : CSSValue(classType) > { > } >- >- virtual bool isTimingFunctionValue() const { return true; } > }; > > class CSSLinearTimingFunctionValue : public CSSTimingFunctionValue { >@@ -56,12 +55,11 @@ public: > > private: > CSSLinearTimingFunctionValue() >+ : CSSTimingFunctionValue(LinearTimingFunctionClass) > { > } > > virtual String cssText() const; >- >- virtual bool isLinearTimingFunctionValue() const { return true; } > }; > > class CSSCubicBezierTimingFunctionValue : public CSSTimingFunctionValue { >@@ -78,7 +76,8 @@ public: > > private: > CSSCubicBezierTimingFunctionValue(double x1, double y1, double x2, double y2) >- : m_x1(x1) >+ : CSSTimingFunctionValue(CubicBezierTimingFunctionClass) >+ , m_x1(x1) > , m_y1(y1) > , m_x2(x2) > , m_y2(y2) >@@ -87,8 +86,6 @@ private: > > virtual String cssText() const; > >- virtual bool isCubicBezierTimingFunctionValue() const { return true; } >- > double m_x1; > double m_y1; > double m_x2; >@@ -107,15 +104,14 @@ public: > > private: > CSSStepsTimingFunctionValue(int steps, bool stepAtStart) >- : m_steps(steps) >+ : CSSTimingFunctionValue(StepsTimingFunctionClass) >+ , m_steps(steps) > , m_stepAtStart(stepAtStart) > { > } > > virtual String cssText() const; > >- virtual bool isStepsTimingFunctionValue() const { return true; } >- > int m_steps; > bool m_stepAtStart; > }; >diff --git a/Source/WebCore/css/CSSUnicodeRangeValue.h b/Source/WebCore/css/CSSUnicodeRangeValue.h >index 2f2c012..458bf1a 100644 >--- a/Source/WebCore/css/CSSUnicodeRangeValue.h >+++ b/Source/WebCore/css/CSSUnicodeRangeValue.h >@@ -48,7 +48,8 @@ public: > > private: > CSSUnicodeRangeValue(UChar32 from, UChar32 to) >- : m_from(from) >+ : CSSValue(UnicodeRangeClass) >+ , m_from(from) > , m_to(to) > { > } >diff --git a/Source/WebCore/css/CSSValue.cpp b/Source/WebCore/css/CSSValue.cpp >new file mode 100644 >index 0000000..d2514a8 >--- /dev/null >+++ b/Source/WebCore/css/CSSValue.cpp >@@ -0,0 +1,45 @@ >+/* >+ * Copyright (C) 2011 Andreas Kling (kling@webkit.org) >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY >+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR >+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, >+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, >+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR >+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY >+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT >+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE >+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >+ * >+ */ >+ >+#include "config.h" >+#include "CSSValue.h" >+ >+namespace WebCore { >+ >+CSSValue::Type CSSValue::cssValueType() const >+{ >+ if (isInheritedValue()) >+ return CSS_INHERIT; >+ if (isPrimitiveValue()) >+ return CSS_PRIMITIVE_VALUE; >+ if (isValueList()) >+ return CSS_VALUE_LIST; >+ if (isInitialValue()) >+ return CSS_INITIAL; >+ return CSS_CUSTOM; >+} >+ >+} >diff --git a/Source/WebCore/css/CSSValue.h b/Source/WebCore/css/CSSValue.h >index e7d0208..1ddf4d3 100644 >--- a/Source/WebCore/css/CSSValue.h >+++ b/Source/WebCore/css/CSSValue.h >@@ -44,54 +44,145 @@ public: > > virtual ~CSSValue() { } > >- Type cssValueType() const { return static_cast<Type>(m_type); } >+ Type cssValueType() const; > > virtual String cssText() const = 0; > void setCssText(const String&, ExceptionCode&) { } // FIXME: Not implemented. > >- virtual bool isMutableValue() const { return false; } >- >- virtual bool isBorderImageValue() const { return false; } >- virtual bool isBorderImageSliceValue() const { return false; } >- virtual bool isCursorImageValue() const { return false; } >+ bool isMutableValue() const { return m_isMutable; } >+ 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 isBorderImageSliceValue() const { return m_classType == BorderImageSliceClass; } >+ bool isCursorImageValue() const { return m_classType == CursorImageClass; } >+ bool isFontFamilyValue() const { return m_classType == FontFamilyClass; } >+ bool isFontFeatureValue() const { return m_classType == FontFeatureClass; } >+ 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 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; } >+ bool isWebKitCSSTransformValue() const { return m_classType == WebKitCSSTransformClass; } >+ bool isCSSLineBoxContainValue() const { return m_classType == LineBoxContainClass; } > #if ENABLE(CSS3_FLEXBOX) >- virtual bool isFlexValue() const { return false; } >+ bool isFlexValue() const { return m_classType == FlexClass; } > #endif >- virtual bool isFontFamilyValue() const { return false; } >- virtual bool isFontFeatureValue() const { return false; } >- virtual bool isFontValue() const { return false; } >- virtual bool isImageGeneratorValue() const { return false; } >- virtual bool isImageValue() const { return false; } >- virtual bool isInheritedValue() const { return false; } >- virtual bool isInitialValue() const { return false; } >- virtual bool isImplicitInitialValue() const { return false; } >- virtual bool isPrimitiveValue() const { return false; } >- virtual bool isReflectValue() const { return false; } >- virtual bool isShadowValue() const { return false; } >- virtual bool isTimingFunctionValue() const { return false; } >- virtual bool isValueList() const { return false; } >- virtual bool isWebKitCSSTransformValue() const { return false; } >- virtual bool isCSSLineBoxContainValue() const { return false; } > #if ENABLE(CSS_FILTERS) >- virtual bool isWebKitCSSFilterValue() const { return false; } >+ bool isWebKitCSSFilterValue() const { return m_classType == WebKitCSSFilterClass; } > #endif > #if ENABLE(SVG) >- virtual bool isSVGColor() const { return false; } >- virtual bool isSVGPaint() const { return false; } >+ bool isSVGColor() const { return m_classType == SVGColorClass || m_classType == SVGPaintClass; } >+ bool isSVGPaint() const { return m_classType == SVGPaintClass; } > #endif > > virtual void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*) { } > > protected: >- CSSValue(Type type = CSS_CUSTOM) >- : m_type(type) >+ >+ enum ClassType { >+ AspectRatioClass, >+ BorderImageClass, >+ BorderImageSliceClass, >+ CanvasClass, >+ CursorImageClass, >+ FontFamilyClass, >+ FontFeatureClass, >+ FontClass, >+ FontFaceSrcClass, >+ FunctionClass, >+ LinearGradientClass, >+ RadialGradientClass, >+ CrossfadeClass, >+ ImageClass, >+ InheritedClass, >+ InitialClass, >+ ImplicitInitialClass, >+ PrimitiveClass, >+ ReflectClass, >+ ShadowClass, >+ LinearTimingFunctionClass, >+ CubicBezierTimingFunctionClass, >+ StepsTimingFunctionClass, >+ UnicodeRangeClass, >+ ValueListClass, >+ WebKitCSSTransformClass, >+ LineBoxContainClass, >+#if ENABLE(CSS3_FLEXBOX) >+ FlexClass, >+#endif >+#if ENABLE(CSS_FILTERS) >+ WebKitCSSFilterClass, >+#endif >+#if ENABLE(SVG) >+ SVGColorClass, >+ SVGPaintClass, >+#endif >+ }; >+ >+ ClassType classType() const { return static_cast<ClassType>(m_classType); } >+ >+ CSSValue(ClassType classType) >+ : m_classType(classType) >+ , m_isPrimitive(isPrimitiveType(classType)) >+ , m_isMutable(isMutableType(classType)) >+ , m_isList(isListType(classType)) >+ , m_isInitial(isInitialType(classType)) >+ , m_isInherited(isInheritedType(classType)) > { > } > > private: >+ static bool isPrimitiveType(ClassType type) >+ { >+ return type == PrimitiveClass >+ || type == ImageClass >+ || type == CursorImageClass >+ || type == FontFamilyClass; >+ } >+ >+ static bool isListType(ClassType type) >+ { >+ return type == ValueListClass >+#if ENABLE(CSS_FILTERS) >+ || type == WebKitCSSFilterClass >+#endif >+ || type == WebKitCSSTransformClass; >+ } >+ >+ static bool isMutableType(ClassType type) >+ { >+#if ENABLE(SVG) >+ return type == SVGColorClass >+ || type == SVGPaintClass; >+#else >+ UNUSED_PARAM(type); >+ return false; >+#endif >+ } >+ >+ static bool isInheritedType(ClassType type) >+ { >+ return type == InheritedClass; >+ } >+ >+ static bool isInitialType(ClassType type) >+ { >+ return type == InitialClass || type == ImplicitInitialClass; >+ } >+ > // FIXME: This class is currently a little bloated, but that will change. > // See <http://webkit.org/b/71666> for more information. >- unsigned m_type : 3; // Type >+ unsigned m_classType : 5; // ClassType >+ bool m_isPrimitive : 1; >+ bool m_isMutable : 1; >+ bool m_isList : 1; >+ bool m_isInitial : 1; >+ bool m_isInherited : 1; > }; > > } // namespace WebCore >diff --git a/Source/WebCore/css/CSSValueList.cpp b/Source/WebCore/css/CSSValueList.cpp >index 591b2a8..7aa3ac2 100644 >--- a/Source/WebCore/css/CSSValueList.cpp >+++ b/Source/WebCore/css/CSSValueList.cpp >@@ -27,14 +27,20 @@ > > namespace WebCore { > >+CSSValueList::CSSValueList(ClassType classType, bool isSpaceSeparated) >+ : CSSValue(classType) >+ , m_isSpaceSeparated(isSpaceSeparated) >+{ >+} >+ > CSSValueList::CSSValueList(bool isSpaceSeparated) >- : CSSValue(CSS_VALUE_LIST) >+ : CSSValue(ValueListClass) > , m_isSpaceSeparated(isSpaceSeparated) > { > } > > CSSValueList::CSSValueList(CSSParserValueList* list) >- : CSSValue(CSS_VALUE_LIST) >+ : CSSValue(ValueListClass) > , m_isSpaceSeparated(true) > { > if (list) { >diff --git a/Source/WebCore/css/CSSValueList.h b/Source/WebCore/css/CSSValueList.h >index 2423d5b..1f2a575 100644 >--- a/Source/WebCore/css/CSSValueList.h >+++ b/Source/WebCore/css/CSSValueList.h >@@ -61,11 +61,11 @@ public: > virtual void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*); > > protected: >- CSSValueList(bool isSpaceSeparated); >- CSSValueList(CSSParserValueList*); >+ CSSValueList(ClassType, bool isSpaceSeparated); > > private: >- virtual bool isValueList() const { return true; } >+ CSSValueList(bool isSpaceSeparated); >+ CSSValueList(CSSParserValueList*); > > Vector<RefPtr<CSSValue> > m_values; > bool m_isSpaceSeparated; >diff --git a/Source/WebCore/css/FontFamilyValue.cpp b/Source/WebCore/css/FontFamilyValue.cpp >index ebe9645..5d83fb1 100644 >--- a/Source/WebCore/css/FontFamilyValue.cpp >+++ b/Source/WebCore/css/FontFamilyValue.cpp >@@ -26,7 +26,7 @@ > namespace WebCore { > > FontFamilyValue::FontFamilyValue(const String& familyName) >- : CSSPrimitiveValue(String(), CSS_STRING) >+ : CSSPrimitiveValue(FontFamilyClass, String(), CSS_STRING) > , m_familyName(familyName) > { > // If there is anything in parentheses or square brackets at the end, delete it. >diff --git a/Source/WebCore/css/FontFamilyValue.h b/Source/WebCore/css/FontFamilyValue.h >index 3f7d3a3..087d22a 100644 >--- a/Source/WebCore/css/FontFamilyValue.h >+++ b/Source/WebCore/css/FontFamilyValue.h >@@ -41,7 +41,6 @@ public: > > private: > FontFamilyValue(const String& familyName); >- virtual bool isFontFamilyValue() const { return true; } > > String m_familyName; > }; >diff --git a/Source/WebCore/css/FontFeatureValue.cpp b/Source/WebCore/css/FontFeatureValue.cpp >index ce684bf..33f30f7 100644 >--- a/Source/WebCore/css/FontFeatureValue.cpp >+++ b/Source/WebCore/css/FontFeatureValue.cpp >@@ -33,7 +33,8 @@ > namespace WebCore { > > FontFeatureValue::FontFeatureValue(const String& tag, int value) >- : m_tag(tag) >+ : CSSValue(FontFeatureClass) >+ , m_tag(tag) > , m_value(value) > { > } >diff --git a/Source/WebCore/css/FontFeatureValue.h b/Source/WebCore/css/FontFeatureValue.h >index 55f4127..30b0dfb 100644 >--- a/Source/WebCore/css/FontFeatureValue.h >+++ b/Source/WebCore/css/FontFeatureValue.h >@@ -44,7 +44,6 @@ public: > > private: > FontFeatureValue(const String&, int); >- virtual bool isFontFeatureValue() const { return true; } > > String m_tag; > const int m_value; >diff --git a/Source/WebCore/css/FontValue.h b/Source/WebCore/css/FontValue.h >index 5c7406c..c966a07 100644 >--- a/Source/WebCore/css/FontValue.h >+++ b/Source/WebCore/css/FontValue.h >@@ -47,9 +47,10 @@ public: > RefPtr<CSSValueList> family; > > private: >- FontValue() { } >- >- virtual bool isFontValue() const { return true; } >+ FontValue() >+ : CSSValue(FontClass) >+ { >+ } > }; > > } // namespace >diff --git a/Source/WebCore/css/ShadowValue.cpp b/Source/WebCore/css/ShadowValue.cpp >index 060a322..25ac515 100644 >--- a/Source/WebCore/css/ShadowValue.cpp >+++ b/Source/WebCore/css/ShadowValue.cpp >@@ -32,7 +32,8 @@ ShadowValue::ShadowValue(PassRefPtr<CSSPrimitiveValue> _x, > PassRefPtr<CSSPrimitiveValue> _spread, > PassRefPtr<CSSPrimitiveValue> _style, > PassRefPtr<CSSPrimitiveValue> _color) >- : x(_x) >+ : CSSValue(ShadowClass) >+ , x(_x) > , y(_y) > , blur(_blur) > , spread(_spread) >diff --git a/Source/WebCore/css/ShadowValue.h b/Source/WebCore/css/ShadowValue.h >index fab1071..a88a0e7 100644 >--- a/Source/WebCore/css/ShadowValue.h >+++ b/Source/WebCore/css/ShadowValue.h >@@ -58,8 +58,6 @@ private: > PassRefPtr<CSSPrimitiveValue> spread, > PassRefPtr<CSSPrimitiveValue> style, > PassRefPtr<CSSPrimitiveValue> color); >- >- virtual bool isShadowValue() const { return true; } > }; > > } // namespace >diff --git a/Source/WebCore/css/WebKitCSSFilterValue.cpp b/Source/WebCore/css/WebKitCSSFilterValue.cpp >index 2505831..105005e 100644 >--- a/Source/WebCore/css/WebKitCSSFilterValue.cpp >+++ b/Source/WebCore/css/WebKitCSSFilterValue.cpp >@@ -35,7 +35,7 @@ > namespace WebCore { > > WebKitCSSFilterValue::WebKitCSSFilterValue(FilterOperationType operationType) >- : CSSValueList(true) >+ : CSSValueList(WebKitCSSFilterClass, true) > , m_type(operationType) > { > } >diff --git a/Source/WebCore/css/WebKitCSSFilterValue.h b/Source/WebCore/css/WebKitCSSFilterValue.h >index d4d08e1..48f1a7c 100644 >--- a/Source/WebCore/css/WebKitCSSFilterValue.h >+++ b/Source/WebCore/css/WebKitCSSFilterValue.h >@@ -66,8 +66,6 @@ public: > private: > WebKitCSSFilterValue(FilterOperationType); > >- virtual bool isWebKitCSSFilterValue() const { return true; } >- > FilterOperationType m_type; > }; > >diff --git a/Source/WebCore/css/WebKitCSSTransformValue.cpp b/Source/WebCore/css/WebKitCSSTransformValue.cpp >index 7620424..a56a9d1 100644 >--- a/Source/WebCore/css/WebKitCSSTransformValue.cpp >+++ b/Source/WebCore/css/WebKitCSSTransformValue.cpp >@@ -33,7 +33,7 @@ > namespace WebCore { > > WebKitCSSTransformValue::WebKitCSSTransformValue(TransformOperationType op) >- : CSSValueList(false) >+ : CSSValueList(WebKitCSSTransformClass, false) > , m_type(op) > { > } >diff --git a/Source/WebCore/css/WebKitCSSTransformValue.h b/Source/WebCore/css/WebKitCSSTransformValue.h >index 858096a..d7cd4cc 100644 >--- a/Source/WebCore/css/WebKitCSSTransformValue.h >+++ b/Source/WebCore/css/WebKitCSSTransformValue.h >@@ -74,8 +74,6 @@ public: > private: > WebKitCSSTransformValue(TransformOperationType); > >- virtual bool isWebKitCSSTransformValue() const { return true; } >- > TransformOperationType m_type; > }; > >diff --git a/Source/WebCore/svg/SVGColor.cpp b/Source/WebCore/svg/SVGColor.cpp >index 911d02f..016337e 100644 >--- a/Source/WebCore/svg/SVGColor.cpp >+++ b/Source/WebCore/svg/SVGColor.cpp >@@ -31,7 +31,14 @@ > namespace WebCore { > > SVGColor::SVGColor(const SVGColorType& colorType) >- : m_colorType(colorType) >+ : CSSMutableValue(SVGColorClass) >+ , m_colorType(colorType) >+{ >+} >+ >+SVGColor::SVGColor(ClassType classType, const SVGColorType& colorType) >+ : CSSMutableValue(classType) >+ , m_colorType(colorType) > { > } > >diff --git a/Source/WebCore/svg/SVGColor.h b/Source/WebCore/svg/SVGColor.h >index 58dc704..daed83d 100644 >--- a/Source/WebCore/svg/SVGColor.h >+++ b/Source/WebCore/svg/SVGColor.h >@@ -72,7 +72,7 @@ public: > protected: > friend class CSSComputedStyleDeclaration; > >- SVGColor(const SVGColorType&); >+ SVGColor(ClassType, const SVGColorType&); > virtual ~SVGColor() { } > virtual String cssText() const; > >@@ -80,7 +80,7 @@ protected: > void setColorType(const SVGColorType& type) { m_colorType = type; } > > private: >- virtual bool isSVGColor() const { return true; } >+ SVGColor(const SVGColorType&); > > Color m_color; > SVGColorType m_colorType; >diff --git a/Source/WebCore/svg/SVGPaint.cpp b/Source/WebCore/svg/SVGPaint.cpp >index 565aa08..863ce6a 100644 >--- a/Source/WebCore/svg/SVGPaint.cpp >+++ b/Source/WebCore/svg/SVGPaint.cpp >@@ -54,7 +54,7 @@ static inline SVGColor::SVGColorType colorTypeForPaintType(const SVGPaint::SVGPa > } > > SVGPaint::SVGPaint(const SVGPaintType& paintType, const String& uri) >- : SVGColor(colorTypeForPaintType(paintType)) >+ : SVGColor(SVGPaintClass, colorTypeForPaintType(paintType)) > , m_paintType(paintType) > , m_uri(uri) > { >diff --git a/Source/WebCore/svg/SVGPaint.h b/Source/WebCore/svg/SVGPaint.h >index e591c7a..620784d 100644 >--- a/Source/WebCore/svg/SVGPaint.h >+++ b/Source/WebCore/svg/SVGPaint.h >@@ -106,7 +106,6 @@ private: > private: > SVGPaint(const SVGPaintType&, const String& uri = String()); > >- virtual bool isSVGPaint() const { return true; } > virtual String cssText() const; > > SVGPaintType m_paintType;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
darin
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 71668
:
113847
| 113904