summaryrefslogtreecommitdiffstats
path: root/WebCore/svg/SVGTransformable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/svg/SVGTransformable.cpp')
-rw-r--r--WebCore/svg/SVGTransformable.cpp73
1 files changed, 35 insertions, 38 deletions
diff --git a/WebCore/svg/SVGTransformable.cpp b/WebCore/svg/SVGTransformable.cpp
index a25e086..006bb94 100644
--- a/WebCore/svg/SVGTransformable.cpp
+++ b/WebCore/svg/SVGTransformable.cpp
@@ -89,7 +89,7 @@ static int parseTransformParamList(const UChar*& ptr, const UChar* end, float* v
static const int requiredValuesForType[] = {0, 6, 1, 1, 1, 1, 1};
static const int optionalValuesForType[] = {0, 0, 1, 1, 2, 0, 0};
-bool SVGTransformable::parseTransformValue(unsigned type, const UChar*& ptr, const UChar* end, SVGTransform& t)
+bool SVGTransformable::parseTransformValue(unsigned type, const UChar*& ptr, const UChar* end, SVGTransform& transform)
{
if (type == SVGTransform::SVG_TRANSFORM_UNKNOWN)
return false;
@@ -100,33 +100,33 @@ bool SVGTransformable::parseTransformValue(unsigned type, const UChar*& ptr, con
return false;
switch (type) {
- case SVGTransform::SVG_TRANSFORM_SKEWX:
- t.setSkewX(values[0]);
- break;
- case SVGTransform::SVG_TRANSFORM_SKEWY:
- t.setSkewY(values[0]);
- break;
- case SVGTransform::SVG_TRANSFORM_SCALE:
- if (valueCount == 1) // Spec: if only one param given, assume uniform scaling
- t.setScale(values[0], values[0]);
- else
- t.setScale(values[0], values[1]);
- break;
- case SVGTransform::SVG_TRANSFORM_TRANSLATE:
- if (valueCount == 1) // Spec: if only one param given, assume 2nd param to be 0
- t.setTranslate(values[0], 0);
- else
- t.setTranslate(values[0], values[1]);
- break;
- case SVGTransform::SVG_TRANSFORM_ROTATE:
- if (valueCount == 1)
- t.setRotate(values[0], 0, 0);
- else
- t.setRotate(values[0], values[1], values[2]);
- break;
- case SVGTransform::SVG_TRANSFORM_MATRIX:
- t.setMatrix(AffineTransform(values[0], values[1], values[2], values[3], values[4], values[5]));
- break;
+ case SVGTransform::SVG_TRANSFORM_SKEWX:
+ transform.setSkewX(values[0]);
+ break;
+ case SVGTransform::SVG_TRANSFORM_SKEWY:
+ transform.setSkewY(values[0]);
+ break;
+ case SVGTransform::SVG_TRANSFORM_SCALE:
+ if (valueCount == 1) // Spec: if only one param given, assume uniform scaling
+ transform.setScale(values[0], values[0]);
+ else
+ transform.setScale(values[0], values[1]);
+ break;
+ case SVGTransform::SVG_TRANSFORM_TRANSLATE:
+ if (valueCount == 1) // Spec: if only one param given, assume 2nd param to be 0
+ transform.setTranslate(values[0], 0);
+ else
+ transform.setTranslate(values[0], values[1]);
+ break;
+ case SVGTransform::SVG_TRANSFORM_ROTATE:
+ if (valueCount == 1)
+ transform.setRotate(values[0], 0, 0);
+ else
+ transform.setRotate(values[0], values[1], values[2]);
+ break;
+ case SVGTransform::SVG_TRANSFORM_MATRIX:
+ transform.setMatrix(AffineTransform(values[0], values[1], values[2], values[3], values[4], values[5]));
+ break;
}
return true;
@@ -165,19 +165,16 @@ static inline bool parseAndSkipType(const UChar*& currTransform, const UChar* en
return true;
}
-bool SVGTransformable::parseTransformAttribute(SVGTransformList* list, const AtomicString& transform)
+bool SVGTransformable::parseTransformAttribute(SVGTransformList& list, const AtomicString& transform)
{
const UChar* start = transform.characters();
return parseTransformAttribute(list, start, start + transform.length());
}
-bool SVGTransformable::parseTransformAttribute(SVGTransformList* list, const UChar*& currTransform, const UChar* end, TransformParsingMode mode)
+bool SVGTransformable::parseTransformAttribute(SVGTransformList& list, const UChar*& currTransform, const UChar* end, TransformParsingMode mode)
{
- ExceptionCode ec = 0;
- if (mode == ClearList) {
- list->clear(ec);
- ASSERT(!ec);
- }
+ if (mode == ClearList)
+ list.clear();
bool delimParsed = false;
while (currTransform < end) {
@@ -188,11 +185,11 @@ bool SVGTransformable::parseTransformAttribute(SVGTransformList* list, const UCh
if (!parseAndSkipType(currTransform, end, type))
return false;
- SVGTransform t;
- if (!parseTransformValue(type, currTransform, end, t))
+ SVGTransform transform;
+ if (!parseTransformValue(type, currTransform, end, transform))
return false;
- list->appendItem(t, ec);
+ list.append(transform);
skipOptionalSpaces(currTransform, end);
if (currTransform < end && *currTransform == ',') {
delimParsed = true;