Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(708)

Unified Diff: Source/core/css/resolver/TransformBuilder.cpp

Issue 1164573002: CSSValue Immediates: Change CSSValue to an object instead of a pointer (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/css/resolver/StyleResolverState.h ('k') | Source/core/css/resolver/ViewportStyleResolver.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/css/resolver/TransformBuilder.cpp
diff --git a/Source/core/css/resolver/TransformBuilder.cpp b/Source/core/css/resolver/TransformBuilder.cpp
index f6fdbc11e8c510e189735d158518cbf936beb429..d6786476bf4f35c00aba8e6d0d8fe16feeae2ef2 100644
--- a/Source/core/css/resolver/TransformBuilder.cpp
+++ b/Source/core/css/resolver/TransformBuilder.cpp
@@ -43,10 +43,9 @@
namespace blink {
-static Length convertToFloatLength(CSSPrimitiveValue* primitiveValue, const CSSToLengthConversionData& conversionData)
+static Length convertToFloatLength(CSSPrimitiveValue& primitiveValue, const CSSToLengthConversionData& conversionData)
{
- ASSERT(primitiveValue);
- return primitiveValue->convertToLength(conversionData);
+ return primitiveValue.convertToLength(conversionData);
}
static TransformOperation::OperationType getTransformOperationType(CSSValueID type)
@@ -90,10 +89,10 @@ void TransformBuilder::createTransformOperations(CSSValue& inValue, const CSSToL
float zoomFactor = conversionData.zoom();
for (auto& value : toCSSValueList(inValue)) {
- CSSFunctionValue* transformValue = toCSSFunctionValue(value.get());
- TransformOperation::OperationType transformType = getTransformOperationType(transformValue->functionType());
+ CSSFunctionValue& transformValue = toCSSFunctionValue(value);
+ TransformOperation::OperationType transformType = getTransformOperationType(transformValue.functionType());
- CSSPrimitiveValue* firstValue = toCSSPrimitiveValue(transformValue->item(0));
+ CSSPrimitiveValue& firstValue = toCSSPrimitiveValue(transformValue.item(0));
switch (transformType) {
case TransformOperation::Scale:
@@ -102,13 +101,13 @@ void TransformBuilder::createTransformOperations(CSSValue& inValue, const CSSToL
double sx = 1.0;
double sy = 1.0;
if (transformType == TransformOperation::ScaleY) {
- sy = firstValue->getDoubleValue();
+ sy = firstValue.getDoubleValue();
} else {
- sx = firstValue->getDoubleValue();
+ sx = firstValue.getDoubleValue();
if (transformType != TransformOperation::ScaleX) {
- if (transformValue->length() > 1) {
- CSSPrimitiveValue* secondValue = toCSSPrimitiveValue(transformValue->item(1));
- sy = secondValue->getDoubleValue();
+ if (transformValue.length() > 1) {
+ CSSPrimitiveValue& secondValue = toCSSPrimitiveValue(transformValue.item(1));
+ sy = secondValue.getDoubleValue();
} else {
sy = sx;
}
@@ -123,11 +122,11 @@ void TransformBuilder::createTransformOperations(CSSValue& inValue, const CSSToL
double sy = 1.0;
double sz = 1.0;
if (transformType == TransformOperation::ScaleZ) {
- sz = firstValue->getDoubleValue();
+ sz = firstValue.getDoubleValue();
} else {
- sx = firstValue->getDoubleValue();
- sy = toCSSPrimitiveValue(transformValue->item(1))->getDoubleValue();
- sz = toCSSPrimitiveValue(transformValue->item(2))->getDoubleValue();
+ sx = firstValue.getDoubleValue();
+ sy = toCSSPrimitiveValue(transformValue.item(1)).getDoubleValue();
+ sz = toCSSPrimitiveValue(transformValue.item(2)).getDoubleValue();
}
outOperations.operations().append(ScaleTransformOperation::create(sx, sy, sz, transformType));
break;
@@ -142,8 +141,8 @@ void TransformBuilder::createTransformOperations(CSSValue& inValue, const CSSToL
else {
tx = convertToFloatLength(firstValue, conversionData);
if (transformType != TransformOperation::TranslateX) {
- if (transformValue->length() > 1) {
- CSSPrimitiveValue* secondValue = toCSSPrimitiveValue(transformValue->item(1));
+ if (transformValue.length() > 1) {
+ CSSPrimitiveValue& secondValue = toCSSPrimitiveValue(transformValue.item(1));
ty = convertToFloatLength(secondValue, conversionData);
}
}
@@ -158,11 +157,11 @@ void TransformBuilder::createTransformOperations(CSSValue& inValue, const CSSToL
Length ty = Length(0, Fixed);
double tz = 0;
if (transformType == TransformOperation::TranslateZ) {
- tz = firstValue->computeLength<double>(conversionData);
+ tz = firstValue.computeLength<double>(conversionData);
} else {
tx = convertToFloatLength(firstValue, conversionData);
- ty = convertToFloatLength(toCSSPrimitiveValue(transformValue->item(1)), conversionData);
- tz = toCSSPrimitiveValue(transformValue->item(2))->computeLength<double>(conversionData);
+ ty = convertToFloatLength(toCSSPrimitiveValue(transformValue.item(1)), conversionData);
+ tz = toCSSPrimitiveValue(transformValue.item(2)).computeLength<double>(conversionData);
}
outOperations.operations().append(TranslateTransformOperation::create(tx, ty, tz, transformType));
@@ -171,7 +170,7 @@ void TransformBuilder::createTransformOperations(CSSValue& inValue, const CSSToL
case TransformOperation::RotateX:
case TransformOperation::RotateY:
case TransformOperation::RotateZ: {
- double angle = firstValue->computeDegrees();
+ double angle = firstValue.computeDegrees();
double x = transformType == TransformOperation::RotateX;
double y = transformType == TransformOperation::RotateY;
double z = transformType == TransformOperation::RotateZ;
@@ -179,13 +178,13 @@ void TransformBuilder::createTransformOperations(CSSValue& inValue, const CSSToL
break;
}
case TransformOperation::Rotate3D: {
- CSSPrimitiveValue* secondValue = toCSSPrimitiveValue(transformValue->item(1));
- CSSPrimitiveValue* thirdValue = toCSSPrimitiveValue(transformValue->item(2));
- CSSPrimitiveValue* fourthValue = toCSSPrimitiveValue(transformValue->item(3));
- double x = firstValue->getDoubleValue();
- double y = secondValue->getDoubleValue();
- double z = thirdValue->getDoubleValue();
- double angle = fourthValue->computeDegrees();
+ CSSPrimitiveValue& secondValue = toCSSPrimitiveValue(transformValue.item(1));
+ CSSPrimitiveValue& thirdValue = toCSSPrimitiveValue(transformValue.item(2));
+ CSSPrimitiveValue& fourthValue = toCSSPrimitiveValue(transformValue.item(3));
+ double x = firstValue.getDoubleValue();
+ double y = secondValue.getDoubleValue();
+ double z = thirdValue.getDoubleValue();
+ double angle = fourthValue.computeDegrees();
outOperations.operations().append(RotateTransformOperation::create(x, y, z, angle, transformType));
break;
}
@@ -194,15 +193,15 @@ void TransformBuilder::createTransformOperations(CSSValue& inValue, const CSSToL
case TransformOperation::SkewY: {
double angleX = 0;
double angleY = 0;
- double angle = firstValue->computeDegrees();
+ double angle = firstValue.computeDegrees();
if (transformType == TransformOperation::SkewY)
angleY = angle;
else {
angleX = angle;
if (transformType == TransformOperation::Skew) {
- if (transformValue->length() > 1) {
- CSSPrimitiveValue* secondValue = toCSSPrimitiveValue(transformValue->item(1));
- angleY = secondValue->computeDegrees();
+ if (transformValue.length() > 1) {
+ CSSPrimitiveValue& secondValue = toCSSPrimitiveValue(transformValue.item(1));
+ angleY = secondValue.computeDegrees();
}
}
}
@@ -210,37 +209,37 @@ void TransformBuilder::createTransformOperations(CSSValue& inValue, const CSSToL
break;
}
case TransformOperation::Matrix: {
- double a = firstValue->getDoubleValue();
- double b = toCSSPrimitiveValue(transformValue->item(1))->getDoubleValue();
- double c = toCSSPrimitiveValue(transformValue->item(2))->getDoubleValue();
- double d = toCSSPrimitiveValue(transformValue->item(3))->getDoubleValue();
- double e = zoomFactor * toCSSPrimitiveValue(transformValue->item(4))->getDoubleValue();
- double f = zoomFactor * toCSSPrimitiveValue(transformValue->item(5))->getDoubleValue();
+ double a = firstValue.getDoubleValue();
+ double b = toCSSPrimitiveValue(transformValue.item(1)).getDoubleValue();
+ double c = toCSSPrimitiveValue(transformValue.item(2)).getDoubleValue();
+ double d = toCSSPrimitiveValue(transformValue.item(3)).getDoubleValue();
+ double e = zoomFactor * toCSSPrimitiveValue(transformValue.item(4)).getDoubleValue();
+ double f = zoomFactor * toCSSPrimitiveValue(transformValue.item(5)).getDoubleValue();
outOperations.operations().append(MatrixTransformOperation::create(a, b, c, d, e, f));
break;
}
case TransformOperation::Matrix3D: {
- TransformationMatrix matrix(toCSSPrimitiveValue(transformValue->item(0))->getDoubleValue(),
- toCSSPrimitiveValue(transformValue->item(1))->getDoubleValue(),
- toCSSPrimitiveValue(transformValue->item(2))->getDoubleValue(),
- toCSSPrimitiveValue(transformValue->item(3))->getDoubleValue(),
- toCSSPrimitiveValue(transformValue->item(4))->getDoubleValue(),
- toCSSPrimitiveValue(transformValue->item(5))->getDoubleValue(),
- toCSSPrimitiveValue(transformValue->item(6))->getDoubleValue(),
- toCSSPrimitiveValue(transformValue->item(7))->getDoubleValue(),
- toCSSPrimitiveValue(transformValue->item(8))->getDoubleValue(),
- toCSSPrimitiveValue(transformValue->item(9))->getDoubleValue(),
- toCSSPrimitiveValue(transformValue->item(10))->getDoubleValue(),
- toCSSPrimitiveValue(transformValue->item(11))->getDoubleValue(),
- zoomFactor * toCSSPrimitiveValue(transformValue->item(12))->getDoubleValue(),
- zoomFactor * toCSSPrimitiveValue(transformValue->item(13))->getDoubleValue(),
- toCSSPrimitiveValue(transformValue->item(14))->getDoubleValue(),
- toCSSPrimitiveValue(transformValue->item(15))->getDoubleValue());
+ TransformationMatrix matrix(toCSSPrimitiveValue(transformValue.item(0)).getDoubleValue(),
+ toCSSPrimitiveValue(transformValue.item(1)).getDoubleValue(),
+ toCSSPrimitiveValue(transformValue.item(2)).getDoubleValue(),
+ toCSSPrimitiveValue(transformValue.item(3)).getDoubleValue(),
+ toCSSPrimitiveValue(transformValue.item(4)).getDoubleValue(),
+ toCSSPrimitiveValue(transformValue.item(5)).getDoubleValue(),
+ toCSSPrimitiveValue(transformValue.item(6)).getDoubleValue(),
+ toCSSPrimitiveValue(transformValue.item(7)).getDoubleValue(),
+ toCSSPrimitiveValue(transformValue.item(8)).getDoubleValue(),
+ toCSSPrimitiveValue(transformValue.item(9)).getDoubleValue(),
+ toCSSPrimitiveValue(transformValue.item(10)).getDoubleValue(),
+ toCSSPrimitiveValue(transformValue.item(11)).getDoubleValue(),
+ zoomFactor * toCSSPrimitiveValue(transformValue.item(12)).getDoubleValue(),
+ zoomFactor * toCSSPrimitiveValue(transformValue.item(13)).getDoubleValue(),
+ toCSSPrimitiveValue(transformValue.item(14)).getDoubleValue(),
+ toCSSPrimitiveValue(transformValue.item(15)).getDoubleValue());
outOperations.operations().append(Matrix3DTransformOperation::create(matrix));
break;
}
case TransformOperation::Perspective: {
- double p = firstValue->computeLength<double>(conversionData);
+ double p = firstValue.computeLength<double>(conversionData);
ASSERT(p >= 0);
outOperations.operations().append(PerspectiveTransformOperation::create(p));
break;
« no previous file with comments | « Source/core/css/resolver/StyleResolverState.h ('k') | Source/core/css/resolver/ViewportStyleResolver.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698