Index: third_party/WebKit/Source/core/css/resolver/CSSToStyleMap.cpp |
diff --git a/third_party/WebKit/Source/core/css/resolver/CSSToStyleMap.cpp b/third_party/WebKit/Source/core/css/resolver/CSSToStyleMap.cpp |
index 3258eaea2a4daf6cf040168b428209dffba8e8f7..a93f1f8fdb0d7de308e6cbe92073d0dc66280442 100644 |
--- a/third_party/WebKit/Source/core/css/resolver/CSSToStyleMap.cpp |
+++ b/third_party/WebKit/Source/core/css/resolver/CSSToStyleMap.cpp |
@@ -43,18 +43,18 @@ |
namespace blink { |
-void CSSToStyleMap::mapFillAttachment(StyleResolverState&, FillLayer* layer, CSSValue* value) |
+void CSSToStyleMap::mapFillAttachment(StyleResolverState&, FillLayer* layer, const CSSValue& value) |
{ |
- if (value->isInitialValue()) { |
+ if (value.isInitialValue()) { |
layer->setAttachment(FillLayer::initialFillAttachment(layer->type())); |
return; |
} |
- if (!value->isPrimitiveValue()) |
+ if (!value.isPrimitiveValue()) |
return; |
- CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
- switch (primitiveValue->getValueID()) { |
+ const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
+ switch (primitiveValue.getValueID()) { |
case CSSValueFixed: |
layer->setAttachment(FixedBackgroundAttachment); |
break; |
@@ -69,123 +69,123 @@ void CSSToStyleMap::mapFillAttachment(StyleResolverState&, FillLayer* layer, CSS |
} |
} |
-void CSSToStyleMap::mapFillClip(StyleResolverState&, FillLayer* layer, CSSValue* value) |
+void CSSToStyleMap::mapFillClip(StyleResolverState&, FillLayer* layer, const CSSValue& value) |
{ |
- if (value->isInitialValue()) { |
+ if (value.isInitialValue()) { |
layer->setClip(FillLayer::initialFillClip(layer->type())); |
return; |
} |
- if (!value->isPrimitiveValue()) |
+ if (!value.isPrimitiveValue()) |
return; |
- CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
- layer->setClip(*primitiveValue); |
+ const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
+ layer->setClip(primitiveValue); |
} |
-void CSSToStyleMap::mapFillComposite(StyleResolverState&, FillLayer* layer, CSSValue* value) |
+void CSSToStyleMap::mapFillComposite(StyleResolverState&, FillLayer* layer, const CSSValue& value) |
{ |
- if (value->isInitialValue()) { |
+ if (value.isInitialValue()) { |
layer->setComposite(FillLayer::initialFillComposite(layer->type())); |
return; |
} |
- if (!value->isPrimitiveValue()) |
+ if (!value.isPrimitiveValue()) |
return; |
- CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
- layer->setComposite(*primitiveValue); |
+ const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
+ layer->setComposite(primitiveValue); |
} |
-void CSSToStyleMap::mapFillBlendMode(StyleResolverState&, FillLayer* layer, CSSValue* value) |
+void CSSToStyleMap::mapFillBlendMode(StyleResolverState&, FillLayer* layer, const CSSValue& value) |
{ |
- if (value->isInitialValue()) { |
+ if (value.isInitialValue()) { |
layer->setBlendMode(FillLayer::initialFillBlendMode(layer->type())); |
return; |
} |
- if (!value->isPrimitiveValue()) |
+ if (!value.isPrimitiveValue()) |
return; |
- CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
- layer->setBlendMode(*primitiveValue); |
+ const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
+ layer->setBlendMode(primitiveValue); |
} |
-void CSSToStyleMap::mapFillOrigin(StyleResolverState&, FillLayer* layer, CSSValue* value) |
+void CSSToStyleMap::mapFillOrigin(StyleResolverState&, FillLayer* layer, const CSSValue& value) |
{ |
- if (value->isInitialValue()) { |
+ if (value.isInitialValue()) { |
layer->setOrigin(FillLayer::initialFillOrigin(layer->type())); |
return; |
} |
- if (!value->isPrimitiveValue()) |
+ if (!value.isPrimitiveValue()) |
return; |
- CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
- layer->setOrigin(*primitiveValue); |
+ const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
+ layer->setOrigin(primitiveValue); |
} |
-void CSSToStyleMap::mapFillImage(StyleResolverState& state, FillLayer* layer, CSSValue* value) |
+void CSSToStyleMap::mapFillImage(StyleResolverState& state, FillLayer* layer, const CSSValue& value) |
{ |
- if (value->isInitialValue()) { |
+ if (value.isInitialValue()) { |
layer->setImage(FillLayer::initialFillImage(layer->type())); |
return; |
} |
CSSPropertyID property = layer->type() == BackgroundFillLayer ? CSSPropertyBackgroundImage : CSSPropertyWebkitMaskImage; |
- layer->setImage(state.styleImage(property, *value)); |
+ layer->setImage(state.styleImage(property, value)); |
} |
-void CSSToStyleMap::mapFillRepeatX(StyleResolverState&, FillLayer* layer, CSSValue* value) |
+void CSSToStyleMap::mapFillRepeatX(StyleResolverState&, FillLayer* layer, const CSSValue& value) |
{ |
- if (value->isInitialValue()) { |
+ if (value.isInitialValue()) { |
layer->setRepeatX(FillLayer::initialFillRepeatX(layer->type())); |
return; |
} |
- if (!value->isPrimitiveValue()) |
+ if (!value.isPrimitiveValue()) |
return; |
- CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
- layer->setRepeatX(*primitiveValue); |
+ const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
+ layer->setRepeatX(primitiveValue); |
} |
-void CSSToStyleMap::mapFillRepeatY(StyleResolverState&, FillLayer* layer, CSSValue* value) |
+void CSSToStyleMap::mapFillRepeatY(StyleResolverState&, FillLayer* layer, const CSSValue& value) |
{ |
- if (value->isInitialValue()) { |
+ if (value.isInitialValue()) { |
layer->setRepeatY(FillLayer::initialFillRepeatY(layer->type())); |
return; |
} |
- if (!value->isPrimitiveValue()) |
+ if (!value.isPrimitiveValue()) |
return; |
- CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
- layer->setRepeatY(*primitiveValue); |
+ const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
+ layer->setRepeatY(primitiveValue); |
} |
-void CSSToStyleMap::mapFillSize(StyleResolverState& state, FillLayer* layer, CSSValue* value) |
+void CSSToStyleMap::mapFillSize(StyleResolverState& state, FillLayer* layer, const CSSValue& value) |
{ |
- if (value->isInitialValue()) { |
+ if (value.isInitialValue()) { |
layer->setSizeType(FillLayer::initialFillSizeType(layer->type())); |
layer->setSizeLength(FillLayer::initialFillSizeLength(layer->type())); |
return; |
} |
- if (!value->isPrimitiveValue() && !value->isValuePair()) |
+ if (!value.isPrimitiveValue() && !value.isValuePair()) |
return; |
- if (value->isPrimitiveValue() && toCSSPrimitiveValue(value)->getValueID() == CSSValueContain) |
+ if (value.isPrimitiveValue() && toCSSPrimitiveValue(value).getValueID() == CSSValueContain) |
layer->setSizeType(Contain); |
- else if (value->isPrimitiveValue() && toCSSPrimitiveValue(value)->getValueID() == CSSValueCover) |
+ else if (value.isPrimitiveValue() && toCSSPrimitiveValue(value).getValueID() == CSSValueCover) |
layer->setSizeType(Cover); |
else |
layer->setSizeType(SizeLength); |
LengthSize b = FillLayer::initialFillSizeLength(layer->type()); |
- if (value->isPrimitiveValue() && (toCSSPrimitiveValue(value)->getValueID() == CSSValueContain || toCSSPrimitiveValue(value)->getValueID() == CSSValueCover)) { |
+ if (value.isPrimitiveValue() && (toCSSPrimitiveValue(value).getValueID() == CSSValueContain || toCSSPrimitiveValue(value).getValueID() == CSSValueCover)) { |
layer->setSizeLength(b); |
return; |
} |
@@ -193,13 +193,14 @@ void CSSToStyleMap::mapFillSize(StyleResolverState& state, FillLayer* layer, CSS |
Length firstLength; |
Length secondLength; |
- if (value->isValuePair()) { |
- CSSValuePair* pair = toCSSValuePair(value); |
- firstLength = StyleBuilderConverter::convertLengthOrAuto(state, &pair->first()); |
- secondLength = StyleBuilderConverter::convertLengthOrAuto(state, &pair->second()); |
+ if (value.isValuePair()) { |
+ const CSSValuePair& pair = toCSSValuePair(value); |
+ // TODO(sashab): Make StyleBuilderConverter take const&s and remove these const_casts. |
+ firstLength = StyleBuilderConverter::convertLengthOrAuto(state, const_cast<CSSValue*>(&pair.first())); |
+ secondLength = StyleBuilderConverter::convertLengthOrAuto(state, const_cast<CSSValue*>(&pair.second())); |
} else { |
- ASSERT(value->isPrimitiveValue()); |
- firstLength = StyleBuilderConverter::convertLengthOrAuto(state, value); |
+ ASSERT(value.isPrimitiveValue()); |
+ firstLength = StyleBuilderConverter::convertLengthOrAuto(state, const_cast<CSSValue*>(&value)); |
secondLength = Length(); |
} |
@@ -208,62 +209,60 @@ void CSSToStyleMap::mapFillSize(StyleResolverState& state, FillLayer* layer, CSS |
layer->setSizeLength(b); |
} |
-void CSSToStyleMap::mapFillXPosition(StyleResolverState& state, FillLayer* layer, CSSValue* value) |
+void CSSToStyleMap::mapFillXPosition(StyleResolverState& state, FillLayer* layer, const CSSValue& value) |
{ |
- if (value->isInitialValue()) { |
+ if (value.isInitialValue()) { |
layer->setXPosition(FillLayer::initialFillXPosition(layer->type())); |
return; |
} |
- if (!value->isPrimitiveValue() && !value->isValuePair()) |
+ if (!value.isPrimitiveValue() && !value.isValuePair()) |
return; |
Length length; |
- if (value->isValuePair()) |
- length = toCSSPrimitiveValue(toCSSValuePair(value)->second()).convertToLength(state.cssToLengthConversionData()); |
+ if (value.isValuePair()) |
+ length = toCSSPrimitiveValue(toCSSValuePair(value).second()).convertToLength(state.cssToLengthConversionData()); |
else |
- length = toCSSPrimitiveValue(value)->convertToLength(state.cssToLengthConversionData()); |
+ length = toCSSPrimitiveValue(value).convertToLength(state.cssToLengthConversionData()); |
layer->setXPosition(length); |
- if (value->isValuePair()) |
- layer->setBackgroundXOrigin(toCSSPrimitiveValue(toCSSValuePair(value)->first())); |
+ if (value.isValuePair()) |
+ layer->setBackgroundXOrigin(toCSSPrimitiveValue(toCSSValuePair(value).first())); |
} |
-void CSSToStyleMap::mapFillYPosition(StyleResolverState& state, FillLayer* layer, CSSValue* value) |
+void CSSToStyleMap::mapFillYPosition(StyleResolverState& state, FillLayer* layer, const CSSValue& value) |
{ |
- if (value->isInitialValue()) { |
+ if (value.isInitialValue()) { |
layer->setYPosition(FillLayer::initialFillYPosition(layer->type())); |
return; |
} |
- if (!value->isPrimitiveValue() && !value->isValuePair()) |
+ if (!value.isPrimitiveValue() && !value.isValuePair()) |
return; |
- CSSPrimitiveValue* primitiveValue; |
- if (value->isValuePair()) |
- primitiveValue = &toCSSPrimitiveValue(toCSSValuePair(value)->second()); |
+ Length length; |
+ if (value.isValuePair()) |
+ length = toCSSPrimitiveValue(toCSSValuePair(value).second()).convertToLength(state.cssToLengthConversionData()); |
else |
- primitiveValue = toCSSPrimitiveValue(value); |
- |
- Length length = primitiveValue->convertToLength(state.cssToLengthConversionData()); |
+ length = toCSSPrimitiveValue(value).convertToLength(state.cssToLengthConversionData()); |
layer->setYPosition(length); |
- if (value->isValuePair()) |
- layer->setBackgroundYOrigin(toCSSPrimitiveValue(toCSSValuePair(value)->first())); |
+ if (value.isValuePair()) |
+ layer->setBackgroundYOrigin(toCSSPrimitiveValue(toCSSValuePair(value).first())); |
} |
-void CSSToStyleMap::mapFillMaskSourceType(StyleResolverState&, FillLayer* layer, CSSValue* value) |
+void CSSToStyleMap::mapFillMaskSourceType(StyleResolverState&, FillLayer* layer, const CSSValue& value) |
{ |
EMaskSourceType type = FillLayer::initialFillMaskSourceType(layer->type()); |
- if (value->isInitialValue()) { |
+ if (value.isInitialValue()) { |
layer->setMaskSourceType(type); |
return; |
} |
- if (!value->isPrimitiveValue()) |
+ if (!value.isPrimitiveValue()) |
return; |
- switch (toCSSPrimitiveValue(value)->getValueID()) { |
+ switch (toCSSPrimitiveValue(value).getValueID()) { |
case CSSValueAlpha: |
type = MaskAlpha; |
break; |
@@ -279,19 +278,19 @@ void CSSToStyleMap::mapFillMaskSourceType(StyleResolverState&, FillLayer* layer, |
layer->setMaskSourceType(type); |
} |
-double CSSToStyleMap::mapAnimationDelay(CSSValue* value) |
+double CSSToStyleMap::mapAnimationDelay(const CSSValue& value) |
{ |
- if (value->isInitialValue()) |
+ if (value.isInitialValue()) |
return CSSTimingData::initialDelay(); |
- return toCSSPrimitiveValue(value)->computeSeconds(); |
+ return toCSSPrimitiveValue(value).computeSeconds(); |
} |
-Timing::PlaybackDirection CSSToStyleMap::mapAnimationDirection(CSSValue* value) |
+Timing::PlaybackDirection CSSToStyleMap::mapAnimationDirection(const CSSValue& value) |
{ |
- if (value->isInitialValue()) |
+ if (value.isInitialValue()) |
return CSSAnimationData::initialDirection(); |
- switch (toCSSPrimitiveValue(value)->getValueID()) { |
+ switch (toCSSPrimitiveValue(value).getValueID()) { |
case CSSValueNormal: |
return Timing::PlaybackDirectionNormal; |
case CSSValueAlternate: |
@@ -306,19 +305,19 @@ Timing::PlaybackDirection CSSToStyleMap::mapAnimationDirection(CSSValue* value) |
} |
} |
-double CSSToStyleMap::mapAnimationDuration(CSSValue* value) |
+double CSSToStyleMap::mapAnimationDuration(const CSSValue& value) |
{ |
- if (value->isInitialValue()) |
+ if (value.isInitialValue()) |
return CSSTimingData::initialDuration(); |
- return toCSSPrimitiveValue(value)->computeSeconds(); |
+ return toCSSPrimitiveValue(value).computeSeconds(); |
} |
-Timing::FillMode CSSToStyleMap::mapAnimationFillMode(CSSValue* value) |
+Timing::FillMode CSSToStyleMap::mapAnimationFillMode(const CSSValue& value) |
{ |
- if (value->isInitialValue()) |
+ if (value.isInitialValue()) |
return CSSAnimationData::initialFillMode(); |
- switch (toCSSPrimitiveValue(value)->getValueID()) { |
+ switch (toCSSPrimitiveValue(value).getValueID()) { |
case CSSValueNone: |
return Timing::FillModeNone; |
case CSSValueForwards: |
@@ -333,58 +332,58 @@ Timing::FillMode CSSToStyleMap::mapAnimationFillMode(CSSValue* value) |
} |
} |
-double CSSToStyleMap::mapAnimationIterationCount(CSSValue* value) |
+double CSSToStyleMap::mapAnimationIterationCount(const CSSValue& value) |
{ |
- if (value->isInitialValue()) |
+ if (value.isInitialValue()) |
return CSSAnimationData::initialIterationCount(); |
- CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
- if (primitiveValue->getValueID() == CSSValueInfinite) |
+ const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
+ if (primitiveValue.getValueID() == CSSValueInfinite) |
return std::numeric_limits<double>::infinity(); |
- return primitiveValue->getFloatValue(); |
+ return primitiveValue.getFloatValue(); |
} |
-AtomicString CSSToStyleMap::mapAnimationName(CSSValue* value) |
+AtomicString CSSToStyleMap::mapAnimationName(const CSSValue& value) |
{ |
- if (value->isInitialValue()) |
+ if (value.isInitialValue()) |
return CSSAnimationData::initialName(); |
- CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
- if (primitiveValue->getValueID() == CSSValueNone) |
+ const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
+ if (primitiveValue.getValueID() == CSSValueNone) |
return CSSAnimationData::initialName(); |
- return AtomicString(primitiveValue->getStringValue()); |
+ return AtomicString(primitiveValue.getStringValue()); |
} |
-EAnimPlayState CSSToStyleMap::mapAnimationPlayState(CSSValue* value) |
+EAnimPlayState CSSToStyleMap::mapAnimationPlayState(const CSSValue& value) |
{ |
- if (value->isInitialValue()) |
+ if (value.isInitialValue()) |
return CSSAnimationData::initialPlayState(); |
- if (toCSSPrimitiveValue(value)->getValueID() == CSSValuePaused) |
+ if (toCSSPrimitiveValue(value).getValueID() == CSSValuePaused) |
return AnimPlayStatePaused; |
- ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueRunning); |
+ ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueRunning); |
return AnimPlayStatePlaying; |
} |
-CSSTransitionData::TransitionProperty CSSToStyleMap::mapAnimationProperty(CSSValue* value) |
+CSSTransitionData::TransitionProperty CSSToStyleMap::mapAnimationProperty(const CSSValue& value) |
{ |
- if (value->isInitialValue()) |
+ if (value.isInitialValue()) |
return CSSTransitionData::initialProperty(); |
- CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
- if (primitiveValue->isCustomIdent()) |
- return CSSTransitionData::TransitionProperty(primitiveValue->getStringValue()); |
- if (primitiveValue->getValueID() == CSSValueNone) |
+ const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
+ if (primitiveValue.isCustomIdent()) |
+ return CSSTransitionData::TransitionProperty(primitiveValue.getStringValue()); |
+ if (primitiveValue.getValueID() == CSSValueNone) |
return CSSTransitionData::TransitionProperty(CSSTransitionData::TransitionNone); |
- return CSSTransitionData::TransitionProperty(primitiveValue->getPropertyID()); |
+ return CSSTransitionData::TransitionProperty(primitiveValue.getPropertyID()); |
} |
-PassRefPtr<TimingFunction> CSSToStyleMap::mapAnimationTimingFunction(CSSValue* value, bool allowStepMiddle) |
+PassRefPtr<TimingFunction> CSSToStyleMap::mapAnimationTimingFunction(const CSSValue& value, bool allowStepMiddle) |
{ |
// FIXME: We should probably only call into this function with a valid |
// single timing function value which isn't initial or inherit. We can |
// currently get into here with initial since the parser expands unset |
// properties in shorthands to initial. |
- if (value->isPrimitiveValue()) { |
- CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
- switch (primitiveValue->getValueID()) { |
+ if (value.isPrimitiveValue()) { |
+ const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
+ switch (primitiveValue.getValueID()) { |
case CSSValueLinear: |
return LinearTimingFunction::shared(); |
case CSSValueEase: |
@@ -409,28 +408,28 @@ PassRefPtr<TimingFunction> CSSToStyleMap::mapAnimationTimingFunction(CSSValue* v |
} |
} |
- if (value->isCubicBezierTimingFunctionValue()) { |
- CSSCubicBezierTimingFunctionValue* cubicTimingFunction = toCSSCubicBezierTimingFunctionValue(value); |
- return CubicBezierTimingFunction::create(cubicTimingFunction->x1(), cubicTimingFunction->y1(), cubicTimingFunction->x2(), cubicTimingFunction->y2()); |
+ if (value.isCubicBezierTimingFunctionValue()) { |
+ const CSSCubicBezierTimingFunctionValue& cubicTimingFunction = toCSSCubicBezierTimingFunctionValue(value); |
+ return CubicBezierTimingFunction::create(cubicTimingFunction.x1(), cubicTimingFunction.y1(), cubicTimingFunction.x2(), cubicTimingFunction.y2()); |
} |
- if (value->isInitialValue()) |
+ if (value.isInitialValue()) |
return CSSTimingData::initialTimingFunction(); |
- CSSStepsTimingFunctionValue* stepsTimingFunction = toCSSStepsTimingFunctionValue(value); |
- if (stepsTimingFunction->stepAtPosition() == StepsTimingFunction::Middle && !allowStepMiddle) |
+ const CSSStepsTimingFunctionValue& stepsTimingFunction = toCSSStepsTimingFunctionValue(value); |
+ if (stepsTimingFunction.stepAtPosition() == StepsTimingFunction::Middle && !allowStepMiddle) |
return CSSTimingData::initialTimingFunction(); |
- return StepsTimingFunction::create(stepsTimingFunction->numberOfSteps(), stepsTimingFunction->stepAtPosition()); |
+ return StepsTimingFunction::create(stepsTimingFunction.numberOfSteps(), stepsTimingFunction.stepAtPosition()); |
} |
-void CSSToStyleMap::mapNinePieceImage(StyleResolverState& state, CSSPropertyID property, CSSValue* value, NinePieceImage& image) |
+void CSSToStyleMap::mapNinePieceImage(StyleResolverState& state, CSSPropertyID property, const CSSValue& value, NinePieceImage& image) |
{ |
// If we're not a value list, then we are "none" and don't need to alter the empty image at all. |
- if (!value || !value->isValueList()) |
+ if (!value.isValueList()) |
return; |
// Retrieve the border image value. |
- CSSValueList* borderImage = toCSSValueList(value); |
+ const CSSValueList& borderImage = toCSSValueList(value); |
// Set the image (this kicks off the load). |
CSSPropertyID imageProperty; |
@@ -441,28 +440,28 @@ void CSSToStyleMap::mapNinePieceImage(StyleResolverState& state, CSSPropertyID p |
else |
imageProperty = property; |
- for (unsigned i = 0 ; i < borderImage->length() ; ++i) { |
- CSSValue* current = borderImage->item(i); |
+ for (unsigned i = 0 ; i < borderImage.length() ; ++i) { |
+ const CSSValue& current = *borderImage.item(i); |
- if (current->isImageValue() || current->isImageGeneratorValue() || current->isImageSetValue()) |
- image.setImage(state.styleImage(imageProperty, *current)); |
- else if (current->isBorderImageSliceValue()) |
+ if (current.isImageValue() || current.isImageGeneratorValue() || current.isImageSetValue()) { |
+ image.setImage(state.styleImage(imageProperty, current)); |
+ } else if (current.isBorderImageSliceValue()) { |
mapNinePieceImageSlice(state, current, image); |
- else if (current->isValueList()) { |
- CSSValueList* slashList = toCSSValueList(current); |
- size_t length = slashList->length(); |
+ } else if (current.isValueList()) { |
+ const CSSValueList& slashList = toCSSValueList(current); |
+ size_t length = slashList.length(); |
// Map in the image slices. |
- if (length && slashList->item(0)->isBorderImageSliceValue()) |
- mapNinePieceImageSlice(state, slashList->item(0), image); |
+ if (length && slashList.item(0)->isBorderImageSliceValue()) |
+ mapNinePieceImageSlice(state, *slashList.item(0), image); |
// Map in the border slices. |
if (length > 1) |
- image.setBorderSlices(mapNinePieceImageQuad(state, slashList->item(1))); |
+ image.setBorderSlices(mapNinePieceImageQuad(state, *slashList.item(1))); |
// Map in the outset. |
if (length > 2) |
- image.setOutset(mapNinePieceImageQuad(state, slashList->item(2))); |
- } else if (current->isPrimitiveValue() || current->isValuePair()) { |
+ image.setOutset(mapNinePieceImageQuad(state, *slashList.item(2))); |
+ } else if (current.isPrimitiveValue() || current.isValuePair()) { |
// Set the appropriate rules for stretch/round/repeat of the slices. |
mapNinePieceImageRepeat(state, current, image); |
} |
@@ -483,17 +482,17 @@ void CSSToStyleMap::mapNinePieceImage(StyleResolverState& state, CSSPropertyID p |
} |
} |
-void CSSToStyleMap::mapNinePieceImageSlice(StyleResolverState&, CSSValue* value, NinePieceImage& image) |
+void CSSToStyleMap::mapNinePieceImageSlice(StyleResolverState&, const CSSValue& value, NinePieceImage& image) |
{ |
- if (!value || !value->isBorderImageSliceValue()) |
+ if (!value.isBorderImageSliceValue()) |
return; |
// Retrieve the border image value. |
- CSSBorderImageSliceValue* borderImageSlice = toCSSBorderImageSliceValue(value); |
+ const CSSBorderImageSliceValue& borderImageSlice = toCSSBorderImageSliceValue(value); |
// Set up a length box to represent our image slices. |
LengthBox box; |
- CSSQuadValue* slices = borderImageSlice->slices(); |
+ CSSQuadValue* slices = borderImageSlice.slices(); |
if (slices->top()->isPercentage()) |
box.m_top = Length(slices->top()->getDoubleValue(), Percent); |
else |
@@ -513,7 +512,7 @@ void CSSToStyleMap::mapNinePieceImageSlice(StyleResolverState&, CSSValue* value, |
image.setImageSlices(box); |
// Set our fill mode. |
- image.setFill(borderImageSlice->m_fill); |
+ image.setFill(borderImageSlice.m_fill); |
} |
static BorderImageLength toBorderImageLength(CSSPrimitiveValue& value, const CSSToLengthConversionData& conversionData) |
@@ -527,27 +526,27 @@ static BorderImageLength toBorderImageLength(CSSPrimitiveValue& value, const CSS |
return Length(Auto); |
} |
-BorderImageLengthBox CSSToStyleMap::mapNinePieceImageQuad(StyleResolverState& state, CSSValue* value) |
+BorderImageLengthBox CSSToStyleMap::mapNinePieceImageQuad(StyleResolverState& state, const CSSValue& value) |
{ |
- if (!value || !value->isQuadValue()) |
+ if (!value.isQuadValue()) |
return BorderImageLengthBox(Length(Auto)); |
- RefPtrWillBeRawPtr<CSSQuadValue> slices = toCSSQuadValue(value); |
+ const CSSQuadValue& slices = toCSSQuadValue(value); |
// Set up a border image length box to represent our image slices. |
return BorderImageLengthBox( |
- toBorderImageLength(*slices->top(), state.cssToLengthConversionData()), |
- toBorderImageLength(*slices->right(), state.cssToLengthConversionData()), |
- toBorderImageLength(*slices->bottom(), state.cssToLengthConversionData()), |
- toBorderImageLength(*slices->left(), state.cssToLengthConversionData())); |
+ toBorderImageLength(*slices.top(), state.cssToLengthConversionData()), |
+ toBorderImageLength(*slices.right(), state.cssToLengthConversionData()), |
+ toBorderImageLength(*slices.bottom(), state.cssToLengthConversionData()), |
+ toBorderImageLength(*slices.left(), state.cssToLengthConversionData())); |
} |
-void CSSToStyleMap::mapNinePieceImageRepeat(StyleResolverState&, CSSValue* value, NinePieceImage& image) |
+void CSSToStyleMap::mapNinePieceImageRepeat(StyleResolverState&, const CSSValue& value, NinePieceImage& image) |
{ |
- if (!value || !value->isValuePair()) |
+ if (!value.isValuePair()) |
return; |
- const CSSValuePair& pair = toCSSValuePair(*value); |
+ const CSSValuePair& pair = toCSSValuePair(value); |
CSSValueID firstIdentifier = toCSSPrimitiveValue(pair.first()).getValueID(); |
CSSValueID secondIdentifier = toCSSPrimitiveValue(pair.second()).getValueID(); |