Changeset 99679 in webkit


Ignore:
Timestamp:
Nov 9, 2011, 3:12:27 AM (14 years ago)
Author:
andreas.kling@nokia.com
Message:

Move CSSPrimitiveValue bitfields up into CSSValue.
<http://webkit.org/b/71835>

Reviewed by Darin Adler.

Move m_type (and rename it to m_primitiveUnitType),
m_hasCachedCSSText and m_isQuirkValue from CSSPrimitiveValue
up into CSSValue to share the space.

This, together with the devirtualization of CSSValue that
happened on <http://webkit.org/b/71666>, reduces the size
of CSSPrimitiveValue by one CPU word.

More specifically, we go from 16 to 12 bytes on 32-bit,
and from 24 to 16 bytes on 64-bit.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::init):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::getDoubleValueInternal):
(WebCore::CSSPrimitiveValue::getStringValue):
(WebCore::CSSPrimitiveValue::getCounterValue):
(WebCore::CSSPrimitiveValue::getRectValue):
(WebCore::CSSPrimitiveValue::getQuadValue):
(WebCore::CSSPrimitiveValue::getRGBColorValue):
(WebCore::CSSPrimitiveValue::getPairValue):
(WebCore::CSSPrimitiveValue::getIdent):
(WebCore::CSSPrimitiveValue::customCssText):
(WebCore::CSSPrimitiveValue::addSubresourceStyleURLs):

  • css/CSSPrimitiveValue.h:

(WebCore::CSSPrimitiveValue::isLength):
(WebCore::CSSPrimitiveValue::primitiveType):
(WebCore::CSSPrimitiveValue::setPrimitiveType):
(WebCore::CSSPrimitiveValue::getCounterValue):
(WebCore::CSSPrimitiveValue::getRectValue):
(WebCore::CSSPrimitiveValue::getQuadValue):
(WebCore::CSSPrimitiveValue::getRGBA32Value):
(WebCore::CSSPrimitiveValue::getPairValue):
(WebCore::CSSPrimitiveValue::getDashboardRegionValue):
(WebCore::CSSPrimitiveValue::getShapeValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator short):
(WebCore::CSSPrimitiveValue::operator unsigned short):
(WebCore::CSSPrimitiveValue::operator int):
(WebCore::CSSPrimitiveValue::operator unsigned):
(WebCore::CSSPrimitiveValue::operator float):
(WebCore::CSSPrimitiveValue::operator ColumnSpan):

  • css/CSSValue.h:

(WebCore::CSSValue::CSSValue):

Location:
trunk/Source/WebCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r99675 r99679  
     12011-11-08  Andreas Kling  <kling@webkit.org>
     2
     3        Move CSSPrimitiveValue bitfields up into CSSValue.
     4        <http://webkit.org/b/71835>
     5
     6        Reviewed by Darin Adler.
     7
     8        Move m_type (and rename it to m_primitiveUnitType),
     9        m_hasCachedCSSText and m_isQuirkValue from CSSPrimitiveValue
     10        up into CSSValue to share the space.
     11
     12        This, together with the devirtualization of CSSValue that
     13        happened on <http://webkit.org/b/71666>, reduces the size
     14        of CSSPrimitiveValue by one CPU word.
     15
     16        More specifically, we go from 16 to 12 bytes on 32-bit,
     17        and from 24 to 16 bytes on 64-bit.
     18
     19        * css/CSSPrimitiveValue.cpp:
     20        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
     21        (WebCore::CSSPrimitiveValue::init):
     22        (WebCore::CSSPrimitiveValue::cleanup):
     23        (WebCore::CSSPrimitiveValue::getDoubleValueInternal):
     24        (WebCore::CSSPrimitiveValue::getStringValue):
     25        (WebCore::CSSPrimitiveValue::getCounterValue):
     26        (WebCore::CSSPrimitiveValue::getRectValue):
     27        (WebCore::CSSPrimitiveValue::getQuadValue):
     28        (WebCore::CSSPrimitiveValue::getRGBColorValue):
     29        (WebCore::CSSPrimitiveValue::getPairValue):
     30        (WebCore::CSSPrimitiveValue::getIdent):
     31        (WebCore::CSSPrimitiveValue::customCssText):
     32        (WebCore::CSSPrimitiveValue::addSubresourceStyleURLs):
     33        * css/CSSPrimitiveValue.h:
     34        (WebCore::CSSPrimitiveValue::isLength):
     35        (WebCore::CSSPrimitiveValue::primitiveType):
     36        (WebCore::CSSPrimitiveValue::setPrimitiveType):
     37        (WebCore::CSSPrimitiveValue::getCounterValue):
     38        (WebCore::CSSPrimitiveValue::getRectValue):
     39        (WebCore::CSSPrimitiveValue::getQuadValue):
     40        (WebCore::CSSPrimitiveValue::getRGBA32Value):
     41        (WebCore::CSSPrimitiveValue::getPairValue):
     42        (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
     43        (WebCore::CSSPrimitiveValue::getShapeValue):
     44        * css/CSSPrimitiveValueMappings.h:
     45        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
     46        (WebCore::CSSPrimitiveValue::operator short):
     47        (WebCore::CSSPrimitiveValue::operator unsigned short):
     48        (WebCore::CSSPrimitiveValue::operator int):
     49        (WebCore::CSSPrimitiveValue::operator unsigned):
     50        (WebCore::CSSPrimitiveValue::operator float):
     51        (WebCore::CSSPrimitiveValue::operator ColumnSpan):
     52        * css/CSSValue.h:
     53        (WebCore::CSSValue::CSSValue):
     54
    1552011-11-09  Mark Hahnenberg  <mhahnenberg@apple.com>
    256
  • trunk/Source/WebCore/css/CSSPrimitiveValue.cpp

    r99567 r99679  
    166166CSSPrimitiveValue::CSSPrimitiveValue()
    167167    : CSSValue(PrimitiveClass)
    168     , m_type(0)
    169     , m_hasCachedCSSText(false)
    170     , m_isQuirkValue(false)
    171168{
    172169}
     
    174171CSSPrimitiveValue::CSSPrimitiveValue(int ident)
    175172    : CSSValue(PrimitiveClass)
    176     , m_type(CSS_IDENT)
    177     , m_hasCachedCSSText(false)
    178     , m_isQuirkValue(false)
    179 {
     173{
     174    m_primitiveUnitType = CSS_IDENT;
    180175    m_value.ident = ident;
    181176}
     
    183178CSSPrimitiveValue::CSSPrimitiveValue(ClassType classType, int ident)
    184179    : CSSValue(classType)
    185     , m_type(CSS_IDENT)
    186     , m_hasCachedCSSText(false)
    187     , m_isQuirkValue(false)
    188 {
     180{
     181    m_primitiveUnitType = CSS_IDENT;
    189182    m_value.ident = ident;
    190183}
     
    192185CSSPrimitiveValue::CSSPrimitiveValue(double num, UnitTypes type)
    193186    : CSSValue(PrimitiveClass)
    194     , m_type(type)
    195     , m_hasCachedCSSText(false)
    196     , m_isQuirkValue(false)
    197 {
     187{
     188    m_primitiveUnitType = type;
    198189    ASSERT(isfinite(num));
    199190    m_value.num = num;
     
    202193CSSPrimitiveValue::CSSPrimitiveValue(const String& str, UnitTypes type)
    203194    : CSSValue(PrimitiveClass)
    204     , m_type(type)
    205     , m_hasCachedCSSText(false)
    206     , m_isQuirkValue(false)
    207 {
     195{
     196    m_primitiveUnitType = type;
    208197    if ((m_value.string = str.impl()))
    209198        m_value.string->ref();
     
    213202CSSPrimitiveValue::CSSPrimitiveValue(ClassType classType, const String& str, UnitTypes type)
    214203    : CSSValue(classType)
    215     , m_type(type)
    216     , m_hasCachedCSSText(false)
    217     , m_isQuirkValue(false)
    218 {
     204{
     205    m_primitiveUnitType = type;
    219206    if ((m_value.string = str.impl()))
    220207        m_value.string->ref();
     
    223210CSSPrimitiveValue::CSSPrimitiveValue(RGBA32 color)
    224211    : CSSValue(PrimitiveClass)
    225     , m_type(CSS_RGBCOLOR)
    226     , m_hasCachedCSSText(false)
    227     , m_isQuirkValue(false)
    228 {
     212{
     213    m_primitiveUnitType = CSS_RGBCOLOR;
    229214    m_value.rgbcolor = color;
    230215}
     
    232217CSSPrimitiveValue::CSSPrimitiveValue(const Length& length)
    233218    : CSSValue(PrimitiveClass)
    234     , m_hasCachedCSSText(false)
    235     , m_isQuirkValue(false)
    236219{
    237220    switch (length.type()) {
    238221        case Auto:
    239             m_type = CSS_IDENT;
     222            m_primitiveUnitType = CSS_IDENT;
    240223            m_value.ident = CSSValueAuto;
    241224            break;
    242225        case WebCore::Fixed:
    243             m_type = CSS_PX;
     226            m_primitiveUnitType = CSS_PX;
    244227            m_value.num = length.value();
    245228            break;
    246229        case Intrinsic:
    247             m_type = CSS_IDENT;
     230            m_primitiveUnitType = CSS_IDENT;
    248231            m_value.ident = CSSValueIntrinsic;
    249232            break;
    250233        case MinIntrinsic:
    251             m_type = CSS_IDENT;
     234            m_primitiveUnitType = CSS_IDENT;
    252235            m_value.ident = CSSValueMinIntrinsic;
    253236            break;
    254237        case Percent:
    255             m_type = CSS_PERCENTAGE;
     238            m_primitiveUnitType = CSS_PERCENTAGE;
    256239            ASSERT(isfinite(length.percent()));
    257240            m_value.num = length.percent();
     
    266249void CSSPrimitiveValue::init(PassRefPtr<Counter> c)
    267250{
    268     m_type = CSS_COUNTER;
     251    m_primitiveUnitType = CSS_COUNTER;
    269252    m_hasCachedCSSText = false;
    270253    m_value.counter = c.leakRef();
     
    273256void CSSPrimitiveValue::init(PassRefPtr<Rect> r)
    274257{
    275     m_type = CSS_RECT;
     258    m_primitiveUnitType = CSS_RECT;
    276259    m_hasCachedCSSText = false;
    277260    m_value.rect = r.leakRef();
     
    280263void CSSPrimitiveValue::init(PassRefPtr<Quad> quad)
    281264{
    282     m_type = CSS_QUAD;
     265    m_primitiveUnitType = CSS_QUAD;
    283266    m_hasCachedCSSText = false;
    284267    m_value.quad = quad.leakRef();
     
    288271void CSSPrimitiveValue::init(PassRefPtr<DashboardRegion> r)
    289272{
    290     m_type = CSS_DASHBOARD_REGION;
     273    m_primitiveUnitType = CSS_DASHBOARD_REGION;
    291274    m_hasCachedCSSText = false;
    292275    m_value.region = r.leakRef();
     
    296279void CSSPrimitiveValue::init(PassRefPtr<Pair> p)
    297280{
    298     m_type = CSS_PAIR;
     281    m_primitiveUnitType = CSS_PAIR;
    299282    m_hasCachedCSSText = false;
    300283    m_value.pair = p.leakRef();
     
    303286void CSSPrimitiveValue::init(PassRefPtr<CSSWrapShape> shape)
    304287{
    305     m_type = CSS_SHAPE;
     288    m_primitiveUnitType = CSS_SHAPE;
    306289    m_hasCachedCSSText = false;
    307290    m_value.shape = shape.leakRef();
     
    315298void CSSPrimitiveValue::cleanup()
    316299{
    317     switch (m_type) {
     300    switch (m_primitiveUnitType) {
    318301        case CSS_STRING:
    319302        case CSS_URI:
     
    348331    }
    349332
    350     m_type = 0;
     333    m_primitiveUnitType = 0;
    351334    if (m_hasCachedCSSText) {
    352335        cssTextCache().remove(this);
     
    546529bool CSSPrimitiveValue::getDoubleValueInternal(UnitTypes requestedUnitType, double* result) const
    547530{
    548     if (!isValidCSSUnitTypeForDoubleConversion(static_cast<UnitTypes>(m_type)) || !isValidCSSUnitTypeForDoubleConversion(requestedUnitType))
     531    if (!isValidCSSUnitTypeForDoubleConversion(static_cast<UnitTypes>(m_primitiveUnitType)) || !isValidCSSUnitTypeForDoubleConversion(requestedUnitType))
    549532        return false;
    550     if (requestedUnitType == m_type || requestedUnitType == CSS_DIMENSION) {
     533    if (requestedUnitType == m_primitiveUnitType || requestedUnitType == CSS_DIMENSION) {
    551534        *result = m_value.num;
    552535        return true;
    553536    }
    554537
    555     UnitTypes sourceUnitType = static_cast<UnitTypes>(m_type);
     538    UnitTypes sourceUnitType = static_cast<UnitTypes>(m_primitiveUnitType);
    556539    UnitCategory sourceCategory = unitCategory(sourceUnitType);
    557540    ASSERT(sourceCategory != UOther);
     
    581564    double convertedValue = m_value.num;
    582565
    583     // First convert the value from m_type to canonical type.
     566    // First convert the value from m_primitiveUnitType to canonical type.
    584567    double factor = conversionToCanonicalUnitsScaleFactor(sourceUnitType);
    585568    convertedValue *= factor;
     
    604587{
    605588    ec = 0;
    606     switch (m_type) {
     589    switch (m_primitiveUnitType) {
    607590        case CSS_STRING:
    608591        case CSS_ATTR:
     
    621604String CSSPrimitiveValue::getStringValue() const
    622605{
    623     switch (m_type) {
     606    switch (m_primitiveUnitType) {
    624607        case CSS_STRING:
    625608        case CSS_ATTR:
     
    638621{
    639622    ec = 0;
    640     if (m_type != CSS_COUNTER) {
     623    if (m_primitiveUnitType != CSS_COUNTER) {
    641624        ec = INVALID_ACCESS_ERR;
    642625        return 0;
     
    649632{
    650633    ec = 0;
    651     if (m_type != CSS_RECT) {
     634    if (m_primitiveUnitType != CSS_RECT) {
    652635        ec = INVALID_ACCESS_ERR;
    653636        return 0;
     
    660643{
    661644    ec = 0;
    662     if (m_type != CSS_QUAD) {
     645    if (m_primitiveUnitType != CSS_QUAD) {
    663646        ec = INVALID_ACCESS_ERR;
    664647        return 0;
     
    671654{
    672655    ec = 0;
    673     if (m_type != CSS_RGBCOLOR) {
     656    if (m_primitiveUnitType != CSS_RGBCOLOR) {
    674657        ec = INVALID_ACCESS_ERR;
    675658        return 0;
     
    683666{
    684667    ec = 0;
    685     if (m_type != CSS_PAIR) {
     668    if (m_primitiveUnitType != CSS_PAIR) {
    686669        ec = INVALID_ACCESS_ERR;
    687670        return 0;
     
    693676int CSSPrimitiveValue::getIdent() const
    694677{
    695     if (m_type != CSS_IDENT)
     678    if (m_primitiveUnitType != CSS_IDENT)
    696679        return 0;
    697680    return m_value.ident;
     
    720703
    721704    String text;
    722     switch (m_type) {
     705    switch (m_primitiveUnitType) {
    723706        case CSS_UNKNOWN:
    724707            // FIXME
     
    886869
    887870            RGBA32 rgbColor = m_value.rgbcolor;
    888             if (m_type == CSS_PARSER_HEXCOLOR)
     871            if (m_primitiveUnitType == CSS_PARSER_HEXCOLOR)
    889872                Color::parseHexColor(m_value.string, rgbColor);
    890873            Color color(rgbColor);
     
    933916                else
    934917                    break;
    935                 if (region->top()->m_type == CSS_IDENT && region->top()->getIdent() == CSSValueInvalid) {
    936                     ASSERT(region->right()->m_type == CSS_IDENT);
    937                     ASSERT(region->bottom()->m_type == CSS_IDENT);
    938                     ASSERT(region->left()->m_type == CSS_IDENT);
     918                if (region->top()->m_primitiveUnitType == CSS_IDENT && region->top()->getIdent() == CSSValueInvalid) {
     919                    ASSERT(region->right()->m_primitiveUnitType == CSS_IDENT);
     920                    ASSERT(region->bottom()->m_primitiveUnitType == CSS_IDENT);
     921                    ASSERT(region->left()->m_primitiveUnitType == CSS_IDENT);
    939922                    ASSERT(region->right()->getIdent() == CSSValueInvalid);
    940923                    ASSERT(region->bottom()->getIdent() == CSSValueInvalid);
     
    972955void CSSPrimitiveValue::addSubresourceStyleURLs(ListHashSet<KURL>& urls, const CSSStyleSheet* styleSheet)
    973956{
    974     if (m_type == CSS_URI)
     957    if (m_primitiveUnitType == CSS_URI)
    975958        addSubresourceURL(urls, styleSheet->completeURL(m_value.string));
    976959}
  • trunk/Source/WebCore/css/CSSPrimitiveValue.h

    r99592 r99679  
    5353class CSSPrimitiveValue : public CSSValue {
    5454public:
    55     static const int UnitTypesBits = 8;
    5655    enum UnitTypes {
    5756        CSS_UNKNOWN = 0,
     
    121120                                                    type == CSSPrimitiveValue::CSS_REMS; }
    122121
    123     bool isLength() const { return isUnitTypeLength(m_type); }
     122    bool isLength() const { return isUnitTypeLength(m_primitiveUnitType); }
    124123
    125124    static PassRefPtr<CSSPrimitiveValue> createIdentifier(int identifier) { return adoptRef(new CSSPrimitiveValue(identifier)); }
     
    148147    void cleanup();
    149148
    150     unsigned short primitiveType() const { return m_type; }
     149    unsigned short primitiveType() const { return m_primitiveUnitType; }
    151150
    152151    /*
     
    163162
    164163    // use with care!!!
    165     void setPrimitiveType(unsigned short type) { m_type = type; }
     164    void setPrimitiveType(unsigned short type) { m_primitiveUnitType = type; }
    166165
    167166    double getDoubleValue(unsigned short unitType, ExceptionCode&) const;
     
    187186
    188187    Counter* getCounterValue(ExceptionCode&) const;
    189     Counter* getCounterValue() const { return m_type != CSS_COUNTER ? 0 : m_value.counter; }
     188    Counter* getCounterValue() const { return m_primitiveUnitType != CSS_COUNTER ? 0 : m_value.counter; }
    190189
    191190    Rect* getRectValue(ExceptionCode&) const;
    192     Rect* getRectValue() const { return m_type != CSS_RECT ? 0 : m_value.rect; }
     191    Rect* getRectValue() const { return m_primitiveUnitType != CSS_RECT ? 0 : m_value.rect; }
    193192
    194193    Quad* getQuadValue(ExceptionCode&) const;
    195     Quad* getQuadValue() const { return m_type != CSS_QUAD ? 0 : m_value.quad; }
     194    Quad* getQuadValue() const { return m_primitiveUnitType != CSS_QUAD ? 0 : m_value.quad; }
    196195
    197196    PassRefPtr<RGBColor> getRGBColorValue(ExceptionCode&) const;
    198     RGBA32 getRGBA32Value() const { return m_type != CSS_RGBCOLOR ? 0 : m_value.rgbcolor; }
     197    RGBA32 getRGBA32Value() const { return m_primitiveUnitType != CSS_RGBCOLOR ? 0 : m_value.rgbcolor; }
    199198
    200199    Pair* getPairValue(ExceptionCode&) const;
    201     Pair* getPairValue() const { return m_type != CSS_PAIR ? 0 : m_value.pair; }
    202 
    203     DashboardRegion* getDashboardRegionValue() const { return m_type != CSS_DASHBOARD_REGION ? 0 : m_value.region; }
    204 
    205     CSSWrapShape* getShapeValue() const { return m_type != CSS_SHAPE ? 0 : m_value.shape; }
     200    Pair* getPairValue() const { return m_primitiveUnitType != CSS_PAIR ? 0 : m_value.pair; }
     201
     202    DashboardRegion* getDashboardRegionValue() const { return m_primitiveUnitType != CSS_DASHBOARD_REGION ? 0 : m_value.region; }
     203
     204    CSSWrapShape* getShapeValue() const { return m_primitiveUnitType != CSS_SHAPE ? 0 : m_value.shape; }
    206205
    207206    int getIdent() const;
     
    261260    double computeLengthDouble(RenderStyle* currentStyle, RenderStyle* rootStyle, double multiplier, bool computingFontSize);
    262261
    263     signed m_type : UnitTypesBits;
    264     mutable unsigned m_hasCachedCSSText : 1;
    265     unsigned m_isQuirkValue : 1;
    266262    union {
    267263        int ident;
  • trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h

    r99468 r99679  
    5252template<> inline CSSPrimitiveValue::CSSPrimitiveValue(short i)
    5353    : CSSValue(PrimitiveClass)
    54     , m_type(CSS_NUMBER)
    55     , m_hasCachedCSSText(false)
    56 {
     54{
     55    m_primitiveUnitType = CSS_NUMBER;
    5756    m_value.num = static_cast<double>(i);
    5857}
     
    6059template<> inline CSSPrimitiveValue::operator short() const
    6160{
    62     if (m_type == CSS_NUMBER)
     61    if (m_primitiveUnitType == CSS_NUMBER)
    6362        return clampTo<short>(m_value.num);
    6463
     
    6968template<> inline CSSPrimitiveValue::CSSPrimitiveValue(unsigned short i)
    7069    : CSSValue(PrimitiveClass)
    71     , m_type(CSS_NUMBER)
    72     , m_hasCachedCSSText(false)
    73 {
     70{
     71    m_primitiveUnitType = CSS_NUMBER;
    7472    m_value.num = static_cast<double>(i);
    7573}
     
    7775template<> inline CSSPrimitiveValue::operator unsigned short() const
    7876{
    79     if (m_type == CSS_NUMBER)
     77    if (m_primitiveUnitType == CSS_NUMBER)
    8078        return clampTo<unsigned short>(m_value.num);
    8179
     
    8684template<> inline CSSPrimitiveValue::CSSPrimitiveValue(int i)
    8785    : CSSValue(PrimitiveClass)
    88     , m_type(CSS_NUMBER)
    89     , m_hasCachedCSSText(false)
    90 {
     86{
     87    m_primitiveUnitType = CSS_NUMBER;
    9188    m_value.num = static_cast<double>(i);
    9289}
     
    9491template<> inline CSSPrimitiveValue::operator int() const
    9592{
    96     if (m_type == CSS_NUMBER)
     93    if (m_primitiveUnitType == CSS_NUMBER)
    9794        return clampTo<int>(m_value.num);
    9895
     
    103100template<> inline CSSPrimitiveValue::CSSPrimitiveValue(unsigned i)
    104101    : CSSValue(PrimitiveClass)
    105     , m_type(CSS_NUMBER)
    106     , m_hasCachedCSSText(false)
    107 {
     102{
     103    m_primitiveUnitType = CSS_NUMBER;
    108104    m_value.num = static_cast<double>(i);
    109105}
     
    111107template<> inline CSSPrimitiveValue::operator unsigned() const
    112108{
    113     if (m_type == CSS_NUMBER)
     109    if (m_primitiveUnitType == CSS_NUMBER)
    114110        return clampTo<unsigned>(m_value.num);
    115111
     
    121117template<> inline CSSPrimitiveValue::CSSPrimitiveValue(float i)
    122118    : CSSValue(PrimitiveClass)
    123     , m_type(CSS_NUMBER)
    124     , m_hasCachedCSSText(false)
    125 {
     119{
     120    m_primitiveUnitType = CSS_NUMBER;
    126121    m_value.num = static_cast<double>(i);
    127122}
     
    129124template<> inline CSSPrimitiveValue::operator float() const
    130125{
    131     if (m_type == CSS_NUMBER)
     126    if (m_primitiveUnitType == CSS_NUMBER)
    132127        return clampTo<float>(m_value.num);
    133128
     
    138133template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ColumnSpan columnSpan)
    139134    : CSSValue(PrimitiveClass)
    140     , m_hasCachedCSSText(false)
    141135{
    142136    switch (columnSpan) {
    143137    case ColumnSpanAll:
    144         m_type = CSS_IDENT;
     138        m_primitiveUnitType = CSS_IDENT;
    145139        m_value.ident = CSSValueAll;
    146140        break;
    147141    case ColumnSpanOne:
    148         m_type = CSS_NUMBER;
     142        m_primitiveUnitType = CSS_NUMBER;
    149143        m_value.num = 1;
    150144        break;
     
    154148template<> inline CSSPrimitiveValue::operator ColumnSpan() const
    155149{
    156     if (m_type == CSS_IDENT && m_value.ident == CSSValueAll)
     150    if (m_primitiveUnitType == CSS_IDENT && m_value.ident == CSSValueAll)
    157151        return ColumnSpanAll;
    158     if (m_type == CSS_NUMBER && m_value.num == 1)
     152    if (m_primitiveUnitType == CSS_NUMBER && m_value.num == 1)
    159153        return ColumnSpanOne;
    160154    ASSERT_NOT_REACHED();
     
    165159template<> inline CSSPrimitiveValue::CSSPrimitiveValue(PrintColorAdjust value)
    166160    : CSSValue(PrimitiveClass)
    167     , m_type(CSS_IDENT)
    168     , m_hasCachedCSSText(false)
    169 {
     161{
     162    m_primitiveUnitType = CSS_IDENT;
    170163    switch (value) {
    171164    case PrintColorAdjustExact:
     
    194187template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBorderStyle e)
    195188    : CSSValue(PrimitiveClass)
    196     , m_type(CSS_IDENT)
    197     , m_hasCachedCSSText(false)
    198 {
     189{
     190    m_primitiveUnitType = CSS_IDENT;
    199191    switch (e) {
    200192        case BNONE:
     
    247239template<> inline CSSPrimitiveValue::CSSPrimitiveValue(CompositeOperator e)
    248240    : CSSValue(PrimitiveClass)
    249     , m_type(CSS_IDENT)
    250     , m_hasCachedCSSText(false)
    251 {
     241{
     242    m_primitiveUnitType = CSS_IDENT;
    252243    switch (e) {
    253244        case CompositeClear:
     
    330321template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ControlPart e)
    331322    : CSSValue(PrimitiveClass)
    332     , m_type(CSS_IDENT)
    333     , m_hasCachedCSSText(false)
    334 {
     323{
     324    m_primitiveUnitType = CSS_IDENT;
    335325    switch (e) {
    336326        case NoControlPart:
     
    520510template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBackfaceVisibility e)
    521511    : CSSValue(PrimitiveClass)
    522     , m_type(CSS_IDENT)
    523     , m_hasCachedCSSText(false)
    524 {
     512{
     513    m_primitiveUnitType = CSS_IDENT;
    525514    switch (e) {
    526515    case BackfaceVisibilityVisible:
     
    549538template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFillAttachment e)
    550539    : CSSValue(PrimitiveClass)
    551     , m_type(CSS_IDENT)
    552     , m_hasCachedCSSText(false)
    553 {
     540{
     541    m_primitiveUnitType = CSS_IDENT;
    554542    switch (e) {
    555543        case ScrollBackgroundAttachment:
     
    582570template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFillBox e)
    583571    : CSSValue(PrimitiveClass)
    584     , m_type(CSS_IDENT)
    585     , m_hasCachedCSSText(false)
    586 {
     572{
     573    m_primitiveUnitType = CSS_IDENT;
    587574    switch (e) {
    588575        case BorderFillBox:
     
    624611template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFillRepeat e)
    625612    : CSSValue(PrimitiveClass)
    626     , m_type(CSS_IDENT)
    627     , m_hasCachedCSSText(false)
    628 {
     613{
     614    m_primitiveUnitType = CSS_IDENT;
    629615    switch (e) {
    630616        case RepeatFill:
     
    662648template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxAlignment e)
    663649    : CSSValue(PrimitiveClass)
    664     , m_type(CSS_IDENT)
    665     , m_hasCachedCSSText(false)
    666 {
     650{
     651    m_primitiveUnitType = CSS_IDENT;
    667652    switch (e) {
    668653        case BSTRETCH:
     
    710695template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxSizing e)
    711696    : CSSValue(PrimitiveClass)
    712     , m_type(CSS_IDENT)
    713     , m_hasCachedCSSText(false)
    714 {
     697{
     698    m_primitiveUnitType = CSS_IDENT;
    715699    switch (e) {
    716700    case BORDER_BOX:
     
    738722template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxDirection e)
    739723    : CSSValue(PrimitiveClass)
    740     , m_type(CSS_IDENT)
    741     , m_hasCachedCSSText(false)
    742 {
     724{
     725    m_primitiveUnitType = CSS_IDENT;
    743726    switch (e) {
    744727        case BNORMAL:
     
    766749template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxLines e)
    767750    : CSSValue(PrimitiveClass)
    768     , m_type(CSS_IDENT)
    769     , m_hasCachedCSSText(false)
    770 {
     751{
     752    m_primitiveUnitType = CSS_IDENT;
    771753    switch (e) {
    772754        case SINGLE:
     
    794776template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxOrient e)
    795777    : CSSValue(PrimitiveClass)
    796     , m_type(CSS_IDENT)
    797     , m_hasCachedCSSText(false)
    798 {
     778{
     779    m_primitiveUnitType = CSS_IDENT;
    799780    switch (e) {
    800781        case HORIZONTAL:
     
    824805template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ECaptionSide e)
    825806    : CSSValue(PrimitiveClass)
    826     , m_type(CSS_IDENT)
    827     , m_hasCachedCSSText(false)
    828 {
     807{
     808    m_primitiveUnitType = CSS_IDENT;
    829809    switch (e) {
    830810        case CAPLEFT:
     
    862842template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EClear e)
    863843    : CSSValue(PrimitiveClass)
    864     , m_type(CSS_IDENT)
    865     , m_hasCachedCSSText(false)
    866 {
     844{
     845    m_primitiveUnitType = CSS_IDENT;
    867846    switch (e) {
    868847        case CNONE:
     
    900879template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ECursor e)
    901880    : CSSValue(PrimitiveClass)
    902     , m_type(CSS_IDENT)
    903     , m_hasCachedCSSText(false)
    904 {
     881{
     882    m_primitiveUnitType = CSS_IDENT;
    905883    switch (e) {
    906884        case CURSOR_AUTO:
     
    10261004template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EDisplay e)
    10271005    : CSSValue(PrimitiveClass)
    1028     , m_type(CSS_IDENT)
    1029     , m_hasCachedCSSText(false)
    1030 {
     1006{
     1007    m_primitiveUnitType = CSS_IDENT;
    10311008    switch (e) {
    10321009        case INLINE:
     
    11071084template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EEmptyCell e)
    11081085    : CSSValue(PrimitiveClass)
    1109     , m_type(CSS_IDENT)
    1110     , m_hasCachedCSSText(false)
    1111 {
     1086{
     1087    m_primitiveUnitType = CSS_IDENT;
    11121088    switch (e) {
    11131089        case SHOW:
     
    11351111template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFlexAlign e)
    11361112    : CSSValue(PrimitiveClass)
    1137     , m_type(CSS_IDENT)
    1138     , m_hasCachedCSSText(false)
    1139 {
     1113{
     1114    m_primitiveUnitType = CSS_IDENT;
    11401115    switch (e) {
    11411116    case AlignStart:
     
    11781153template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFlexPack e)
    11791154    : CSSValue(PrimitiveClass)
    1180     , m_type(CSS_IDENT)
    1181     , m_hasCachedCSSText(false)
    1182 {
     1155{
     1156    m_primitiveUnitType = CSS_IDENT;
    11831157    switch (e) {
    11841158    case PackStart:
     
    12161190template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFlexFlow e)
    12171191    : CSSValue(PrimitiveClass)
    1218     , m_type(CSS_IDENT)
    1219     , m_hasCachedCSSText(false)
    1220 {
     1192{
     1193    m_primitiveUnitType = CSS_IDENT;
    12211194    switch (e) {
    12221195    case FlowRow:
     
    12541227template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFloat e)
    12551228    : CSSValue(PrimitiveClass)
    1256     , m_type(CSS_IDENT)
    1257     , m_hasCachedCSSText(false)
    1258 {
     1229{
     1230    m_primitiveUnitType = CSS_IDENT;
    12591231    switch (e) {
    12601232        case NoFloat:
     
    12931265template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EKHTMLLineBreak e)
    12941266    : CSSValue(PrimitiveClass)
    1295     , m_type(CSS_IDENT)
    1296     , m_hasCachedCSSText(false)
    1297 {
     1267{
     1268    m_primitiveUnitType = CSS_IDENT;
    12981269    switch (e) {
    12991270        case LBNORMAL:
     
    13211292template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EListStylePosition e)
    13221293    : CSSValue(PrimitiveClass)
    1323     , m_type(CSS_IDENT)
    1324     , m_hasCachedCSSText(false)
    1325 {
     1294{
     1295    m_primitiveUnitType = CSS_IDENT;
    13261296    switch (e) {
    13271297        case OUTSIDE:
     
    13411311template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EListStyleType e)
    13421312    : CSSValue(PrimitiveClass)
    1343     , m_type(CSS_IDENT)
    1344     , m_hasCachedCSSText(false)
    1345 {
     1313{
     1314    m_primitiveUnitType = CSS_IDENT;
    13461315    switch (e) {
    13471316    case Afar:
     
    16031572template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMarginCollapse e)
    16041573    : CSSValue(PrimitiveClass)
    1605     , m_type(CSS_IDENT)
    1606     , m_hasCachedCSSText(false)
    1607 {
     1574{
     1575    m_primitiveUnitType = CSS_IDENT;
    16081576    switch (e) {
    16091577        case MCOLLAPSE:
     
    16361604template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMarqueeBehavior e)
    16371605    : CSSValue(PrimitiveClass)
    1638     , m_type(CSS_IDENT)
    1639     , m_hasCachedCSSText(false)
    1640 {
     1606{
     1607    m_primitiveUnitType = CSS_IDENT;
    16411608    switch (e) {
    16421609        case MNONE:
     
    16741641template<> inline CSSPrimitiveValue::CSSPrimitiveValue(RegionOverflow e)
    16751642    : CSSValue(PrimitiveClass)
    1676     , m_type(CSS_IDENT)
    1677     , m_hasCachedCSSText(false)
    1678 {
     1643{
     1644    m_primitiveUnitType = CSS_IDENT;
    16791645    switch (e) {
    16801646    case AutoRegionOverflow:
     
    17021668template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMarqueeDirection e)
    17031669    : CSSValue(PrimitiveClass)
    1704     , m_type(CSS_IDENT)
    1705     , m_hasCachedCSSText(false)
    1706 {
     1670{
     1671    m_primitiveUnitType = CSS_IDENT;
    17071672    switch (e) {
    17081673        case MFORWARD:
     
    17571722template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMatchNearestMailBlockquoteColor e)
    17581723    : CSSValue(PrimitiveClass)
    1759     , m_type(CSS_IDENT)
    1760     , m_hasCachedCSSText(false)
    1761 {
     1724{
     1725    m_primitiveUnitType = CSS_IDENT;
    17621726    switch (e) {
    17631727        case BCNORMAL:
     
    17851749template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ENBSPMode e)
    17861750    : CSSValue(PrimitiveClass)
    1787     , m_type(CSS_IDENT)
    1788     , m_hasCachedCSSText(false)
    1789 {
     1751{
     1752    m_primitiveUnitType = CSS_IDENT;
    17901753    switch (e) {
    17911754        case NBNORMAL:
     
    18131776template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EOverflow e)
    18141777    : CSSValue(PrimitiveClass)
    1815     , m_type(CSS_IDENT)
    1816     , m_hasCachedCSSText(false)
    1817 {
     1778{
     1779    m_primitiveUnitType = CSS_IDENT;
    18181780    switch (e) {
    18191781        case OVISIBLE:
     
    18611823template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EPageBreak e)
    18621824    : CSSValue(PrimitiveClass)
    1863     , m_type(CSS_IDENT)
    1864     , m_hasCachedCSSText(false)
    1865 {
     1825{
     1826    m_primitiveUnitType = CSS_IDENT;
    18661827    switch (e) {
    18671828        case PBAUTO:
     
    18961857template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EPosition e)
    18971858    : CSSValue(PrimitiveClass)
    1898     , m_type(CSS_IDENT)
    1899     , m_hasCachedCSSText(false)
    1900 {
     1859{
     1860    m_primitiveUnitType = CSS_IDENT;
    19011861    switch (e) {
    19021862        case StaticPosition:
     
    19341894template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EResize e)
    19351895    : CSSValue(PrimitiveClass)
    1936     , m_type(CSS_IDENT)
    1937     , m_hasCachedCSSText(false)
    1938 {
     1896{
     1897    m_primitiveUnitType = CSS_IDENT;
    19391898    switch (e) {
    19401899        case RESIZE_BOTH:
     
    19751934template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETableLayout e)
    19761935    : CSSValue(PrimitiveClass)
    1977     , m_type(CSS_IDENT)
    1978     , m_hasCachedCSSText(false)
    1979 {
     1936{
     1937    m_primitiveUnitType = CSS_IDENT;
    19801938    switch (e) {
    19811939        case TAUTO:
     
    20031961template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextAlign e)
    20041962    : CSSValue(PrimitiveClass)
    2005     , m_type(CSS_IDENT)
    2006     , m_hasCachedCSSText(false)
    2007 {
     1963{
     1964    m_primitiveUnitType = CSS_IDENT;
    20081965    switch (e) {
    20091966    case TAAUTO:
     
    20732030template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextSecurity e)
    20742031    : CSSValue(PrimitiveClass)
    2075     , m_type(CSS_IDENT)
    2076     , m_hasCachedCSSText(false)
    2077 {
     2032{
     2033    m_primitiveUnitType = CSS_IDENT;
    20782034    switch (e) {
    20792035        case TSNONE:
     
    21112067template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextTransform e)
    21122068    : CSSValue(PrimitiveClass)
    2113     , m_type(CSS_IDENT)
    2114     , m_hasCachedCSSText(false)
    2115 {
     2069{
     2070    m_primitiveUnitType = CSS_IDENT;
    21162071    switch (e) {
    21172072        case CAPITALIZE:
     
    21492104template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUnicodeBidi e)
    21502105    : CSSValue(PrimitiveClass)
    2151     , m_type(CSS_IDENT)
    2152     , m_hasCachedCSSText(false)
    2153 {
     2106{
     2107    m_primitiveUnitType = CSS_IDENT;
    21542108    switch (e) {
    21552109    case UBNormal:
     
    21922146template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUserDrag e)
    21932147    : CSSValue(PrimitiveClass)
    2194     , m_type(CSS_IDENT)
    2195     , m_hasCachedCSSText(false)
    2196 {
     2148{
     2149    m_primitiveUnitType = CSS_IDENT;
    21972150    switch (e) {
    21982151        case DRAG_AUTO:
     
    22252178template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUserModify e)
    22262179    : CSSValue(PrimitiveClass)
    2227     , m_type(CSS_IDENT)
    2228     , m_hasCachedCSSText(false)
    2229 {
     2180{
     2181    m_primitiveUnitType = CSS_IDENT;
    22302182    switch (e) {
    22312183        case READ_ONLY:
     
    22482200template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUserSelect e)
    22492201    : CSSValue(PrimitiveClass)
    2250     , m_type(CSS_IDENT)
    2251     , m_hasCachedCSSText(false)
    2252 {
     2202{
     2203    m_primitiveUnitType = CSS_IDENT;
    22532204    switch (e) {
    22542205        case SELECT_NONE:
     
    22782229template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EVerticalAlign a)
    22792230    : CSSValue(PrimitiveClass)
    2280     , m_type(CSS_IDENT)
    2281     , m_hasCachedCSSText(false)
    2282 {
     2231{
     2232    m_primitiveUnitType = CSS_IDENT;
    22832233    switch (a) {
    22842234    case TOP:
     
    23432293template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EVisibility e)
    23442294    : CSSValue(PrimitiveClass)
    2345     , m_type(CSS_IDENT)
    2346     , m_hasCachedCSSText(false)
    2347 {
     2295{
     2296    m_primitiveUnitType = CSS_IDENT;
    23482297    switch (e) {
    23492298        case VISIBLE:
     
    23762325template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWhiteSpace e)
    23772326    : CSSValue(PrimitiveClass)
    2378     , m_type(CSS_IDENT)
    2379     , m_hasCachedCSSText(false)
    2380 {
     2327{
     2328    m_primitiveUnitType = CSS_IDENT;
    23812329    switch (e) {
    23822330        case NORMAL:
     
    24242372template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWordBreak e)
    24252373    : CSSValue(PrimitiveClass)
    2426     , m_type(CSS_IDENT)
    2427     , m_hasCachedCSSText(false)
    2428 {
     2374{
     2375    m_primitiveUnitType = CSS_IDENT;
    24292376    switch (e) {
    24302377        case NormalWordBreak:
     
    24572404template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWordWrap e)
    24582405    : CSSValue(PrimitiveClass)
    2459     , m_type(CSS_IDENT)
    2460     , m_hasCachedCSSText(false)
    2461 {
     2406{
     2407    m_primitiveUnitType = CSS_IDENT;
    24622408    switch (e) {
    24632409        case NormalWordWrap:
     
    24852431template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextDirection e)
    24862432    : CSSValue(PrimitiveClass)
    2487     , m_type(CSS_IDENT)
    2488     , m_hasCachedCSSText(false)
    2489 {
     2433{
     2434    m_primitiveUnitType = CSS_IDENT;
    24902435    switch (e) {
    24912436        case LTR:
     
    25132458template<> inline CSSPrimitiveValue::CSSPrimitiveValue(WritingMode e)
    25142459    : CSSValue(PrimitiveClass)
    2515     , m_type(CSS_IDENT)
    2516     , m_hasCachedCSSText(false)
    2517 {
     2460{
     2461    m_primitiveUnitType = CSS_IDENT;
    25182462    switch (e) {
    25192463    case TopToBottomWritingMode:
     
    25512495template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextCombine e)
    25522496    : CSSValue(PrimitiveClass)
    2553     , m_type(CSS_IDENT)
    2554     , m_hasCachedCSSText(false)
    2555 {
     2497{
     2498    m_primitiveUnitType = CSS_IDENT;
    25562499    switch (e) {
    25572500    case TextCombineNone:
     
    25792522template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextEmphasisPosition position)
    25802523    : CSSValue(PrimitiveClass)
    2581     , m_type(CSS_IDENT)
    2582     , m_hasCachedCSSText(false)
    2583 {
     2524{
     2525    m_primitiveUnitType = CSS_IDENT;
    25842526    switch (position) {
    25852527    case TextEmphasisPositionOver:
     
    26072549template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextOverflow overflow)
    26082550    : CSSValue(PrimitiveClass)
    2609     , m_type(CSS_IDENT)
    2610     , m_hasCachedCSSText(false)
    2611 {
     2551{
     2552    m_primitiveUnitType = CSS_IDENT;
    26122553    switch (overflow) {
    26132554    case TextOverflowClip:
     
    26352576template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextEmphasisFill fill)
    26362577    : CSSValue(PrimitiveClass)
    2637     , m_type(CSS_IDENT)
    2638     , m_hasCachedCSSText(false)
    2639 {
     2578{
     2579    m_primitiveUnitType = CSS_IDENT;
    26402580    switch (fill) {
    26412581    case TextEmphasisFillFilled:
     
    26632603template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextEmphasisMark mark)
    26642604    : CSSValue(PrimitiveClass)
    2665     , m_type(CSS_IDENT)
    2666     , m_hasCachedCSSText(false)
    2667 {
     2605{
     2606    m_primitiveUnitType = CSS_IDENT;
    26682607    switch (mark) {
    26692608    case TextEmphasisMarkDot:
     
    27142653template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextOrientation e)
    27152654    : CSSValue(PrimitiveClass)
    2716     , m_type(CSS_IDENT)
    2717     , m_hasCachedCSSText(false)
    2718 {
     2655{
     2656    m_primitiveUnitType = CSS_IDENT;
    27192657    switch (e) {
    27202658    case TextOrientationVerticalRight:
     
    27422680template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EPointerEvents e)
    27432681    : CSSValue(PrimitiveClass)
    2744     , m_type(CSS_IDENT)
    2745     , m_hasCachedCSSText(false)
    2746 {
     2682{
     2683    m_primitiveUnitType = CSS_IDENT;
    27472684    switch (e) {
    27482685        case PE_NONE:
     
    28102747template<> inline CSSPrimitiveValue::CSSPrimitiveValue(FontSmoothingMode smoothing)
    28112748    : CSSValue(PrimitiveClass)
    2812     , m_type(CSS_IDENT)
    2813     , m_hasCachedCSSText(false)
    2814 {
     2749{
     2750    m_primitiveUnitType = CSS_IDENT;
    28152751    switch (smoothing) {
    28162752    case AutoSmoothing:
     
    28512787template<> inline CSSPrimitiveValue::CSSPrimitiveValue(FontWeight weight)
    28522788    : CSSValue(PrimitiveClass)
    2853     , m_type(CSS_IDENT)
    2854     , m_hasCachedCSSText(false)
    2855 {
     2789{
     2790    m_primitiveUnitType = CSS_IDENT;
    28562791    switch (weight) {
    28572792    case FontWeight900:
     
    29212856template<> inline CSSPrimitiveValue::CSSPrimitiveValue(FontItalic italic)
    29222857    : CSSValue(PrimitiveClass)
    2923     , m_type(CSS_IDENT)
    2924     , m_hasCachedCSSText(false)
    2925 {
     2858{
     2859    m_primitiveUnitType = CSS_IDENT;
    29262860    switch (italic) {
    29272861    case FontItalicOff:
     
    29532887template<> inline CSSPrimitiveValue::CSSPrimitiveValue(FontSmallCaps smallCaps)
    29542888    : CSSValue(PrimitiveClass)
    2955     , m_type(CSS_IDENT)
    2956     , m_hasCachedCSSText(false)
    2957 {
     2889{
     2890    m_primitiveUnitType = CSS_IDENT;
    29582891    switch (smallCaps) {
    29592892    case FontSmallCapsOff:
     
    29832916template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextRenderingMode e)
    29842917    : CSSValue(PrimitiveClass)
    2985     , m_type(CSS_IDENT)
    2986     , m_hasCachedCSSText(false)
    2987 {
     2918{
     2919    m_primitiveUnitType = CSS_IDENT;
    29882920    switch (e) {
    29892921        case AutoTextRendering:
     
    30212953template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ColorSpace space)
    30222954    : CSSValue(PrimitiveClass)
    3023     , m_type(CSS_IDENT)
    3024     , m_hasCachedCSSText(false)
    3025 {
     2955{
     2956    m_primitiveUnitType = CSS_IDENT;
    30262957    switch (space) {
    30272958    case ColorSpaceDeviceRGB:
     
    30542985template<> inline CSSPrimitiveValue::CSSPrimitiveValue(Hyphens hyphens)
    30552986    : CSSValue(PrimitiveClass)
    3056     , m_type(CSS_IDENT)
    3057     , m_hasCachedCSSText(false)
    3058 {
     2987{
     2988    m_primitiveUnitType = CSS_IDENT;
    30592989    switch (hyphens) {
    30602990    case HyphensNone:
     
    30873017template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ESpeak e)
    30883018    : CSSValue(PrimitiveClass)
    3089     , m_type(CSS_IDENT)
    3090     , m_hasCachedCSSText(false)
    3091 {
     3019{
     3020    m_primitiveUnitType = CSS_IDENT;
    30923021    switch (e) {
    30933022    case SpeakNone:
     
    31273056template<> inline CSSPrimitiveValue::CSSPrimitiveValue(Order e)
    31283057    : CSSValue(PrimitiveClass)
    3129     , m_type(CSS_IDENT)
    3130     , m_hasCachedCSSText(false)
    3131 {
     3058{
     3059    m_primitiveUnitType = CSS_IDENT;
    31323060    switch (e) {
    31333061    case LogicalOrder:
     
    31653093template<> inline CSSPrimitiveValue::CSSPrimitiveValue(LineCap e)
    31663094    : CSSValue(PrimitiveClass)
    3167     , m_type(CSS_IDENT)
    3168     , m_hasCachedCSSText(false)
    3169 {
     3095{
     3096    m_primitiveUnitType = CSS_IDENT;
    31703097    switch (e) {
    31713098        case ButtCap:
     
    31983125template<> inline CSSPrimitiveValue::CSSPrimitiveValue(LineJoin e)
    31993126    : CSSValue(PrimitiveClass)
    3200     , m_type(CSS_IDENT)
    3201     , m_hasCachedCSSText(false)
    3202 {
     3127{
     3128    m_primitiveUnitType = CSS_IDENT;
    32033129    switch (e) {
    32043130        case MiterJoin:
     
    32313157template<> inline CSSPrimitiveValue::CSSPrimitiveValue(WindRule e)
    32323158    : CSSValue(PrimitiveClass)
    3233     , m_type(CSS_IDENT)
    3234     , m_hasCachedCSSText(false)
    3235 {
     3159{
     3160    m_primitiveUnitType = CSS_IDENT;
    32363161    switch (e) {
    32373162        case RULE_NONZERO:
     
    32603185template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EAlignmentBaseline e)
    32613186    : CSSValue(PrimitiveClass)
    3262     , m_type(CSS_IDENT)
    3263     , m_hasCachedCSSText(false)
    3264 {
     3187{
     3188    m_primitiveUnitType = CSS_IDENT;
    32653189    switch (e) {
    32663190        case AB_AUTO:
     
    33403264template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBorderCollapse e)
    33413265    : CSSValue(PrimitiveClass)
    3342     , m_type(CSS_IDENT)
    3343     , m_hasCachedCSSText(false)
    3344 {
     3266{
     3267    m_primitiveUnitType = CSS_IDENT;
    33453268    switch (e) {
    33463269    case BSEPARATE:
     
    33683291template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBorderFit e)
    33693292    : CSSValue(PrimitiveClass)
    3370     , m_type(CSS_IDENT)
    3371     , m_hasCachedCSSText(false)
    3372 {
     3293{
     3294    m_primitiveUnitType = CSS_IDENT;
    33733295    switch (e) {
    33743296    case BorderFitBorder:
     
    33963318template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EImageRendering e)
    33973319    : CSSValue(PrimitiveClass)
    3398     , m_type(CSS_IDENT)
    3399     , m_hasCachedCSSText(false)
    3400 {
     3320{
     3321    m_primitiveUnitType = CSS_IDENT;
    34013322    switch (e) {
    34023323    case ImageRenderingAuto:
     
    34343355template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETransformStyle3D e)
    34353356    : CSSValue(PrimitiveClass)
    3436     , m_type(CSS_IDENT)
    3437     , m_hasCachedCSSText(false)
    3438 {
     3357{
     3358    m_primitiveUnitType = CSS_IDENT;
    34393359    switch (e) {
    34403360    case TransformStyle3DFlat:
     
    34623382template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ColumnAxis e)
    34633383    : CSSValue(PrimitiveClass)
    3464     , m_type(CSS_IDENT)
    3465     , m_hasCachedCSSText(false)
    3466 {
     3384{
     3385    m_primitiveUnitType = CSS_IDENT;
    34673386    switch (e) {
    34683387    case HorizontalColumnAxis:
     
    34973416template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EColorInterpolation e)
    34983417    : CSSValue(PrimitiveClass)
    3499     , m_type(CSS_IDENT)
    3500     , m_hasCachedCSSText(false)
    3501 {
     3418{
     3419    m_primitiveUnitType = CSS_IDENT;
    35023420    switch (e) {
    35033421        case CI_AUTO:
     
    35303448template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EColorRendering e)
    35313449    : CSSValue(PrimitiveClass)
    3532     , m_type(CSS_IDENT)
    3533     , m_hasCachedCSSText(false)
    3534 {
     3450{
     3451    m_primitiveUnitType = CSS_IDENT;
    35353452    switch (e) {
    35363453        case CR_AUTO:
     
    35633480template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EDominantBaseline e)
    35643481    : CSSValue(PrimitiveClass)
    3565     , m_type(CSS_IDENT)
    3566     , m_hasCachedCSSText(false)
    3567 {
     3482{
     3483    m_primitiveUnitType = CSS_IDENT;
    35683484    switch (e) {
    35693485        case DB_AUTO:
     
    36413557template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EShapeRendering e)
    36423558    : CSSValue(PrimitiveClass)
    3643     , m_type(CSS_IDENT)
    3644     , m_hasCachedCSSText(false)
    3645 {
     3559{
     3560    m_primitiveUnitType = CSS_IDENT;
    36463561    switch (e) {
    36473562    case SR_AUTO:
     
    36793594template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextAnchor e)
    36803595    : CSSValue(PrimitiveClass)
    3681     , m_type(CSS_IDENT)
    3682     , m_hasCachedCSSText(false)
    3683 {
     3596{
     3597    m_primitiveUnitType = CSS_IDENT;
    36843598    switch (e) {
    36853599        case TA_START:
     
    37123626template<> inline CSSPrimitiveValue::CSSPrimitiveValue(SVGWritingMode e)
    37133627    : CSSValue(PrimitiveClass)
    3714     , m_type(CSS_IDENT)
    3715     , m_hasCachedCSSText(false)
    3716 {
     3628{
     3629    m_primitiveUnitType = CSS_IDENT;
    37173630    switch (e) {
    37183631        case WM_LRTB:
     
    37603673template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EVectorEffect e)
    37613674    : CSSValue(PrimitiveClass)
    3762     , m_type(CSS_IDENT)
    3763     , m_hasCachedCSSText(false)
    3764 {
     3675{
     3676    m_primitiveUnitType = CSS_IDENT;
    37653677    switch (e) {
    37663678    case VE_NONE:
  • trunk/Source/WebCore/css/CSSValue.h

    r99592 r99679  
    134134    ClassType classType() const { return static_cast<ClassType>(m_classType); }
    135135
    136     CSSValue(ClassType classType)
    137         : m_classType(classType)
     136    explicit CSSValue(ClassType classType)
     137        : m_primitiveUnitType(0)
     138        , m_hasCachedCSSText(false)
     139        , m_isQuirkValue(false)
     140        , m_classType(classType)
    138141        , m_isPrimitive(isPrimitiveType(classType))
    139142        , m_isMutable(isMutableType(classType))
     
    190193    void destroy();
    191194
    192     // FIXME: This class is currently a little bloated, but that will change.
    193     //        See <http://webkit.org/b/71666> for more information.
     195protected:
     196    // These bits are only used by CSSPrimitiveValue but kept here
     197    // to maximize struct packing.
     198    signed m_primitiveUnitType : 8; // CSSPrimitiveValue::UnitTypes
     199    mutable unsigned m_hasCachedCSSText : 1;
     200    unsigned m_isQuirkValue : 1;
     201
     202private:
    194203    unsigned m_classType : 5; // ClassType
    195204    bool m_isPrimitive : 1;
Note: See TracChangeset for help on using the changeset viewer.