Ignore:
Timestamp:
Sep 22, 2013, 6:20:19 PM (12 years ago)
Author:
[email protected]
Message:

Introduce CSS_VALUE_TYPE_CASTS macro in order to cast CSSValue type
https://bugs.webkit.org/show_bug.cgi?id=121462

Reviewed by Andreas Kling.

As r155429 introduced ELEMENT_TYPE_CASTS, CSS_VALUE_TYPE_CASTS can be used
by css value type casting as well. This type cast macros will help to detect
bad-cast bugs as well as improve a code readibility.

This patch adds the following methods,

  • CSSFooValue* toCSSFooValue(CSSValue*)
  • const CSSFooValue* toCSSFooValue(const CSSValue*)

To be consistent with other is*Value() naming style, isCSSLineBoxContainValue() and isCalculationValue()
are changed with isLineBoxContainValue() and isCalcValue().

FontValue, FontFeatureValue, ShadowValue have a manual type case function because of different
class naming style. So, toFontValue(), toFontFeatureValue() and toShadowValue() are added manually.

This patch removes unnecessary local variables.

No new tests, no behavior change.

  • css/CSSAspectRatioValue.h:
  • css/CSSBorderImageSliceValue.h:
  • css/CSSCalculationValue.cpp:

(WebCore::CSSCalcExpressionNodeParser::parseValue):

  • css/CSSCalculationValue.h:
  • css/CSSCrossfadeValue.cpp:

(WebCore::subimageKnownToBeOpaque):

  • css/CSSCrossfadeValue.h:
  • css/CSSCursorImageValue.cpp:

(WebCore::CSSCursorImageValue::~CSSCursorImageValue):
(WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::cachedOrPendingImage):
(WebCore::CSSCursorImageValue::isSVGCursor):

  • css/CSSCursorImageValue.h:
  • css/CSSFilterImageValue.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::addFontFaceRule):

  • css/CSSGradientValue.h:
  • css/CSSImageGeneratorValue.cpp:

(WebCore::CSSImageGeneratorValue::image):
(WebCore::CSSImageGeneratorValue::fixedSize):
(WebCore::CSSImageGeneratorValue::loadSubimages):
(WebCore::CSSImageGeneratorValue::subimageIsPending):
(WebCore::CSSImageGeneratorValue::cachedImageForCSSValue):

  • css/CSSImageGeneratorValue.h:
  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::fillImageSet):

  • css/CSSImageSetValue.h:
  • css/CSSImageValue.h:
  • css/CSSInheritedValue.h:
  • css/CSSInitialValue.h:
  • css/CSSLineBoxContainValue.h:
  • css/CSSParser.cpp:

(WebCore::CSSParser::parseColor):
(WebCore::CSSParser::addProperty):
(WebCore::CSSParser::parse3ValuesFillPosition):
(WebCore::CSSParser::parseFillPosition):
(WebCore::CSSParser::parseFillRepeat):
(WebCore::CSSParser::parseDeprecatedRadialGradient):
(WebCore::CSSParser::parseRadialGradient):

  • css/CSSPrimitiveValue.h:
  • css/CSSReflectValue.h:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapFillAttachment):
(WebCore::CSSToStyleMap::mapFillClip):
(WebCore::CSSToStyleMap::mapFillComposite):
(WebCore::CSSToStyleMap::mapFillBlendMode):
(WebCore::CSSToStyleMap::mapFillOrigin):
(WebCore::CSSToStyleMap::mapFillRepeatX):
(WebCore::CSSToStyleMap::mapFillRepeatY):
(WebCore::CSSToStyleMap::mapFillSize):
(WebCore::CSSToStyleMap::mapFillXPosition):
(WebCore::CSSToStyleMap::mapFillYPosition):
(WebCore::CSSToStyleMap::mapFillMaskSourceType):
(WebCore::CSSToStyleMap::mapAnimationDelay):
(WebCore::CSSToStyleMap::mapAnimationDirection):
(WebCore::CSSToStyleMap::mapAnimationDuration):
(WebCore::CSSToStyleMap::mapAnimationFillMode):
(WebCore::CSSToStyleMap::mapAnimationIterationCount):
(WebCore::CSSToStyleMap::mapAnimationName):
(WebCore::CSSToStyleMap::mapAnimationPlayState):
(WebCore::CSSToStyleMap::mapAnimationProperty):
(WebCore::CSSToStyleMap::mapAnimationTimingFunction):
(WebCore::CSSToStyleMap::mapNinePieceImageSlice):
(WebCore::CSSToStyleMap::mapNinePieceImageQuad):
(WebCore::CSSToStyleMap::mapNinePieceImageRepeat):

  • css/CSSValue.cpp:

(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isLineBoxContainValue):
(WebCore::CSSValue::isCalcValue):

  • css/CSSValueList.h:
  • css/CSSVariableValue.h:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::ApplyPropertyDefault::applyValue):
(WebCore::ApplyPropertyNumber::applyValue):
(WebCore::ApplyPropertyAuto::applyValue):
(WebCore::ApplyPropertyClip::applyValue):
(WebCore::ApplyPropertyColor::applyValue):
(WebCore::ApplyPropertyLength::applyValue):
(WebCore::ApplyPropertyString::applyValue):
(WebCore::ApplyPropertyBorderRadius::applyValue):
(WebCore::ApplyPropertyComputeLength::applyValue):
(WebCore::ApplyPropertyFont::applyValue):
(WebCore::ApplyPropertyFontFamily::applyValue):
(WebCore::ApplyPropertyFontSize::applyValue):
(WebCore::ApplyPropertyFontWeight::applyValue):
(WebCore::ApplyPropertyFontVariantLigatures::applyValue):
(WebCore::ApplyPropertyCounter::applyValue):
(WebCore::ApplyPropertyCursor::applyValue):
(WebCore::ApplyPropertyTextAlign::applyValue):
(WebCore::ApplyPropertyTextDecoration::applyValue):
(WebCore::ApplyPropertyMarqueeIncrement::applyValue):
(WebCore::ApplyPropertyMarqueeRepetition::applyValue):
(WebCore::ApplyPropertyMarqueeSpeed::applyValue):
(WebCore::ApplyPropertyTextUnderlinePosition::applyValue):
(WebCore::ApplyPropertyLineHeight::applyValue):
(WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue):
(WebCore::ApplyPropertyPageSize::applyValue):
(WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
(WebCore::ApplyPropertyResize::applyValue):
(WebCore::ApplyPropertyVerticalAlign::applyValue):
(WebCore::ApplyPropertyAspectRatio::applyValue):
(WebCore::ApplyPropertyZoom::applyValue):
(WebCore::ApplyPropertyDisplay::applyValue):
(WebCore::ApplyPropertyClipPath::applyValue):
(WebCore::ApplyPropertyShape::applyValue):
(WebCore::ApplyPropertyImageResolution::applyValue):
(WebCore::ApplyPropertyTextIndent::applyValue):

  • css/FontFeatureValue.h:

(WebCore::toFontFeatureValue):

  • css/FontValue.h:

(WebCore::toFontValue):

  • css/MediaList.cpp:

(WebCore::reportMediaQueryWarningIfNeeded):

  • css/MediaQueryEvaluator.cpp:

(WebCore::compareAspectRatioValue):
(WebCore::numberValue):
(WebCore::orientationMediaFeatureEval):
(WebCore::evalResolution):
(WebCore::device_pixel_ratioMediaFeatureEval):
(WebCore::resolutionMediaFeatureEval):
(WebCore::computeLength):
(WebCore::view_modeMediaFeatureEval):
(WebCore::pointerMediaFeatureEval):

  • css/SVGCSSStyleSelector.cpp:

(WebCore::StyleResolver::applySVGProperty):

  • css/ShadowValue.h:

(WebCore::toShadowValue):

  • css/StylePropertySet.cpp:

(WebCore::StylePropertySet::getLayeredShorthandValue):

  • css/StyleResolver.cpp:

(WebCore::createGridTrackSize):
(WebCore::createGridTrackList):
(WebCore::createGridPosition):
(WebCore::hasVariableReference):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::generatedOrPendingFromValue):
(WebCore::StyleResolver::styleShader):
(WebCore::StyleResolver::parseCustomFilterArrayParameter):
(WebCore::StyleResolver::parseCustomFilterColorParameter):
(WebCore::StyleResolver::parseCustomFilterNumberParameter):
(WebCore::StyleResolver::parseCustomFilterParameter):
(WebCore::StyleResolver::parseCustomFilterParameterList):
(WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
(WebCore::StyleResolver::createFilterOperations):

  • css/TransformFunctions.cpp:

(WebCore::transformsForValue):

  • css/ViewportStyleResolver.cpp:

(WebCore::ViewportStyleResolver::getViewportArgumentValue):

  • css/WebKitCSSMatrix.cpp:

(WebCore::WebKitCSSMatrix::setMatrixValue):

  • css/WebKitCSSShaderValue.h:

(WebCore::toWebKitCSSShaderValue):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::computedFontSize):

  • editing/EditingStyle.cpp:

(WebCore::identifierForStyleProperty):
(WebCore::HTMLElementEquivalent::valueIsPresentInStyle):
(WebCore::cssValueToRGBA):
(WebCore::EditingStyle::extractFontSizeDelta):
(WebCore::EditingStyle::textDirection):
(WebCore::EditingStyle::prepareToApplyAt):
(WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
(WebCore::EditingStyle::legacyFontSize):
(WebCore::EditingStyle::textDirectionForSelection):
(WebCore::StyleChange::extractTextStyles):
(WebCore::fontWeightIsBold):
(WebCore::isTransparentColorValue):

  • editing/markup.cpp:

(WebCore::propertyMissingOrEqualToNone):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::retrieveResourcesForProperties):

  • rendering/style/StylePendingImage.h:

(WebCore::StylePendingImage::data):
(WebCore::StylePendingImage::cssImageValue):
(WebCore::StylePendingImage::cssImageGeneratorValue):
(WebCore::StylePendingImage::cssCursorImageValue):
(WebCore::StylePendingImage::cssImageSetValue):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/css/StyleResolver.cpp

    r155938 r156253  
    19261926        return false;
    19271927
    1928     CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);
     1928    CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
    19291929    Pair* minMaxTrackBreadth = primitiveValue->getPairValue();
    19301930    if (!minMaxTrackBreadth) {
     
    19501950    // Handle 'none'.
    19511951    if (value->isPrimitiveValue()) {
    1952         CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);
     1952        CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
    19531953        return primitiveValue->getValueID() == CSSValueNone;
    19541954    }
     
    19611961        CSSValue* currValue = i.value();
    19621962        if (currValue->isPrimitiveValue()) {
    1963             CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(currValue);
     1963            CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(currValue);
    19641964            if (primitiveValue->isString()) {
    19651965                NamedGridLinesMap::AddResult result = namedGridLines.add(primitiveValue->getStringValue(), Vector<size_t>());
     
    19891989    if (value->isPrimitiveValue()) {
    19901990#if !ASSERT_DISABLED
    1991         CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);
    1992         ASSERT(primitiveValue->getValueID() == CSSValueAuto);
     1991        ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueAuto);
    19931992#endif
    19941993        return true;
     
    20052004
    20062005    CSSValueListIterator it = values;
    2007     CSSPrimitiveValue* currentValue = static_cast<CSSPrimitiveValue*>(it.value());
     2006    CSSPrimitiveValue* currentValue = toCSSPrimitiveValue(it.value());
    20082007    if (currentValue->getValueID() == CSSValueSpan) {
    20092008        isSpanPosition = true;
    20102009        it.advance();
    2011         currentValue = it.hasMore() ? static_cast<CSSPrimitiveValue*>(it.value()) : 0;
     2010        currentValue = it.hasMore() ? toCSSPrimitiveValue(it.value()) : 0;
    20122011    }
    20132012
     
    20152014        gridLineNumber = currentValue->getIntValue();
    20162015        it.advance();
    2017         currentValue = it.hasMore() ? static_cast<CSSPrimitiveValue*>(it.value()) : 0;
     2016        currentValue = it.hasMore() ? toCSSPrimitiveValue(it.value()) : 0;
    20182017    }
    20192018
     
    20352034static bool hasVariableReference(CSSValue* value)
    20362035{
    2037     if (value->isPrimitiveValue()) {
    2038         CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);
    2039         return primitiveValue->hasVariableReference();
    2040     }
    2041 
    2042     if (value->isCalculationValue())
    2043         return static_cast<CSSCalcValue*>(value)->hasVariableReference();
     2036    if (value->isPrimitiveValue())
     2037        return toCSSPrimitiveValue(value)->hasVariableReference();
     2038
     2039    if (value->isCalcValue())
     2040        return toCSSCalcValue(value)->hasVariableReference();
    20442041
    20452042    if (value->isReflectValue()) {
     
    21342131    }
    21352132
    2136     CSSPrimitiveValue* primitiveValue = value->isPrimitiveValue() ? static_cast<CSSPrimitiveValue*>(value) : 0;
     2133    CSSPrimitiveValue* primitiveValue = value->isPrimitiveValue() ? toCSSPrimitiveValue(value) : 0;
    21372134
    21382135    float zoomFactor = state.style()->effectiveZoom();
     
    21612158                if (item->isImageGeneratorValue()) {
    21622159                    if (item->isGradientValue())
    2163                         state.style()->setContent(StyleGeneratedImage::create(static_cast<CSSGradientValue*>(item)->gradientWithStylesResolved(this).get()), didSet);
     2160                        state.style()->setContent(StyleGeneratedImage::create(toCSSGradientValue(item)->gradientWithStylesResolved(this).get()), didSet);
    21642161                    else
    2165                         state.style()->setContent(StyleGeneratedImage::create(static_cast<CSSImageGeneratorValue*>(item)), didSet);
     2162                        state.style()->setContent(StyleGeneratedImage::create(toCSSImageGeneratorValue(item)), didSet);
    21662163                    didSet = true;
    21672164#if ENABLE(CSS_IMAGE_SET)
    21682165                } else if (item->isImageSetValue()) {
    2169                     state.style()->setContent(setOrPendingFromValue(CSSPropertyContent, static_cast<CSSImageSetValue*>(item)), didSet);
     2166                    state.style()->setContent(setOrPendingFromValue(CSSPropertyContent, toCSSImageSetValue(item)), didSet);
    21702167                    didSet = true;
    21712168#endif
     
    21732170
    21742171                if (item->isImageValue()) {
    2175                     state.style()->setContent(cachedOrPendingFromValue(CSSPropertyContent, static_cast<CSSImageValue*>(item)), didSet);
     2172                    state.style()->setContent(cachedOrPendingFromValue(CSSPropertyContent, toCSSImageValue(item)), didSet);
    21762173                    didSet = true;
    21772174                    continue;
     
    21812178                    continue;
    21822179
    2183                 CSSPrimitiveValue* contentValue = static_cast<CSSPrimitiveValue*>(item);
     2180                CSSPrimitiveValue* contentValue = toCSSPrimitiveValue(item);
    21842181
    21852182                if (contentValue->isString()) {
     
    22552252                ASSERT_WITH_SECURITY_IMPLICATION(first->isPrimitiveValue());
    22562253                ASSERT_WITH_SECURITY_IMPLICATION(second->isPrimitiveValue());
    2257                 String startQuote = static_cast<CSSPrimitiveValue*>(first)->getStringValue();
    2258                 String endQuote = static_cast<CSSPrimitiveValue*>(second)->getStringValue();
     2254                String startQuote = toCSSPrimitiveValue(first)->getStringValue();
     2255                String endQuote = toCSSPrimitiveValue(second)->getStringValue();
    22592256                quotes.append(std::make_pair(startQuote, endQuote));
    22602257            }
     
    26772674        }
    26782675
    2679         if (!value->isCSSLineBoxContainValue())
     2676        if (!value->isLineBoxContainValue())
    26802677            return;
    26812678
    2682         CSSLineBoxContainValue* lineBoxContainValue = static_cast<CSSLineBoxContainValue*>(value);
     2679        CSSLineBoxContainValue* lineBoxContainValue = toCSSLineBoxContainValue(value);
    26832680        state.style()->setLineBoxContain(lineBoxContainValue->value());
    26842681        return;
     
    30763073{
    30773074    if (value->isImageValue())
    3078         return cachedOrPendingFromValue(property, static_cast<CSSImageValue*>(value));
     3075        return cachedOrPendingFromValue(property, toCSSImageValue(value));
    30793076
    30803077    if (value->isImageGeneratorValue()) {
    30813078        if (value->isGradientValue())
    3082             return generatedOrPendingFromValue(property, static_cast<CSSGradientValue*>(value)->gradientWithStylesResolved(this).get());
    3083         return generatedOrPendingFromValue(property, static_cast<CSSImageGeneratorValue*>(value));
     3079            return generatedOrPendingFromValue(property, toCSSGradientValue(value)->gradientWithStylesResolved(this).get());
     3080        return generatedOrPendingFromValue(property, toCSSImageGeneratorValue(value));
    30843081    }
    30853082
    30863083#if ENABLE(CSS_IMAGE_SET)
    30873084    if (value->isImageSetValue())
    3088         return setOrPendingFromValue(property, static_cast<CSSImageSetValue*>(value));
     3085        return setOrPendingFromValue(property, toCSSImageSetValue(value));
    30893086#endif
    30903087
    30913088    if (value->isCursorImageValue())
    3092         return cursorOrPendingFromValue(property, static_cast<CSSCursorImageValue*>(value));
     3089        return cursorOrPendingFromValue(property, toCSSCursorImageValue(value));
    30933090
    30943091    return 0;
     
    31083105    if (value->isFilterImageValue()) {
    31093106        // FilterImage needs to calculate FilterOperations.
    3110         static_cast<CSSFilterImageValue*>(value)->createFilterOperations(this);
     3107        toCSSFilterImageValue(value)->createFilterOperations(this);
    31113108    }
    31123109#endif
     
    33873384{
    33883385    if (value->isWebKitCSSShaderValue())
    3389         return cachedOrPendingStyleShaderFromValue(static_cast<WebKitCSSShaderValue*>(value));
     3386        return cachedOrPendingStyleShaderFromValue(toWebKitCSSShaderValue(value));
    33903387    return 0;
    33913388}
     
    34703467        if (!value->isPrimitiveValue())
    34713468            return 0;
    3472         CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);
     3469        CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
    34733470        if (primitiveValue->primitiveType() != CSSPrimitiveValue::CSS_NUMBER)
    34743471            return 0;
     
    34813478{
    34823479    ASSERT(values->length());
    3483     CSSPrimitiveValue* firstPrimitiveValue = static_cast<CSSPrimitiveValue*>(values->itemWithoutBoundsCheck(0));
     3480    CSSPrimitiveValue* firstPrimitiveValue = toCSSPrimitiveValue(values->itemWithoutBoundsCheck(0));
    34843481    RefPtr<CustomFilterColorParameter> colorParameter = CustomFilterColorParameter::create(name);
    34853482    colorParameter->setColor(Color(firstPrimitiveValue->getRGBA32Value()));
     
    34943491        if (!value->isPrimitiveValue())
    34953492            return 0;
    3496         CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);
     3493        CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
    34973494        if (primitiveValue->primitiveType() != CSSPrimitiveValue::CSS_NUMBER)
    34983495            return 0;
     
    35433540        return 0;
    35443541   
    3545     CSSPrimitiveValue* firstPrimitiveValue = static_cast<CSSPrimitiveValue*>(values->itemWithoutBoundsCheck(0));
     3542    CSSPrimitiveValue* firstPrimitiveValue = toCSSPrimitiveValue(values->itemWithoutBoundsCheck(0));
    35463543    if (firstPrimitiveValue->primitiveType() == CSSPrimitiveValue::CSS_NUMBER)
    35473544        return parseCustomFilterNumberParameter(name, values);
     
    35633560        if (!iterator.isPrimitiveValue())
    35643561            return false;
    3565         CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(iterator.value());
     3562        CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(iterator.value());
    35663563        if (primitiveValue->primitiveType() != CSSPrimitiveValue::CSS_STRING)
    35673564            return false;
     
    36233620            ASSERT(mixFunction->length() <= 3);
    36243621            while (iterator.hasMore()) {
    3625                 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(iterator.value());
     3622                CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(iterator.value());
    36263623                if (CSSParser::isBlendMode(primitiveValue->getValueID()))
    36273624                    mixSettings.blendMode = *primitiveValue;
     
    36553652
    36563653        if (iterator.hasMore() && iterator.isPrimitiveValue()) {
    3657             CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(iterator.value());
     3654            CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(iterator.value());
    36583655            if (primitiveValue->isNumber()) {
    36593656                // If only one integer value is specified, it will set both
     
    36643661                // Try to match another number for the rows.
    36653662                if (iterator.hasMore() && iterator.isPrimitiveValue()) {
    3666                     CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(iterator.value());
     3663                    CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(iterator.value());
    36673664                    if (primitiveValue->isNumber()) {
    36683665                        meshRows = primitiveValue->getIntValue();
     
    36743671       
    36753672        if (iterator.hasMore() && iterator.isPrimitiveValue()) {
    3676             CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(iterator.value());
    3677             if (primitiveValue->getValueID() == CSSValueDetached) {
     3673            if (toCSSPrimitiveValue(iterator.value())->getValueID() == CSSValueDetached) {
    36783674                meshType = MeshTypeDetached;
    36793675                iterator.advance();
     
    37203716   
    37213717    if (inValue->isPrimitiveValue()) {
    3722         CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(inValue);
    3723         if (primitiveValue->getValueID() == CSSValueNone)
     3718        if (toCSSPrimitiveValue(inValue)->getValueID() == CSSValueNone)
    37243719            return true;
    37253720    }
     
    37913786        }
    37923787
    3793         CSSPrimitiveValue* firstValue = filterValue->length() ? static_cast<CSSPrimitiveValue*>(filterValue->itemWithoutBoundsCheck(0)) : 0;
     3788        CSSPrimitiveValue* firstValue = filterValue->length() ? toCSSPrimitiveValue(filterValue->itemWithoutBoundsCheck(0)) : 0;
    37943789        switch (filterValue->operationType()) {
    37953790        case WebKitCSSFilterValue::GrayscaleFilterOperation:
Note: See TracChangeset for help on using the changeset viewer.