Index: Source/core/css/parser/CSSPropertyParser.cpp |
diff --git a/Source/core/css/parser/CSSPropertyParser.cpp b/Source/core/css/parser/CSSPropertyParser.cpp |
index 89f31400a1c047514cc60219657d6f2a1bcab1c2..44d4a11799e1f3955d745b6643d136329b31d4bf 100644 |
--- a/Source/core/css/parser/CSSPropertyParser.cpp |
+++ b/Source/core/css/parser/CSSPropertyParser.cpp |
@@ -4150,7 +4150,7 @@ PassRefPtrWillBeRawPtr<CSSBasicShape> CSSPropertyParser::parseBasicShapeCircle(C |
ASSERT(args); |
// circle(radius) |
- // circle(radius at <position> |
+ // circle(radius at <position>) |
// circle(at <position>) |
// where position defines centerX and centerY using a CSS <position> data type. |
RefPtrWillBeRawPtr<CSSBasicShapeCircle> shape = CSSBasicShapeCircle::create(); |
@@ -4171,10 +4171,9 @@ PassRefPtrWillBeRawPtr<CSSBasicShape> CSSPropertyParser::parseBasicShapeCircle(C |
return nullptr; |
} |
- if (argument->id == CSSValueAt) { |
+ if (argument->id == CSSValueAt && args->next()) { |
RefPtrWillBeRawPtr<CSSValue> centerX; |
RefPtrWillBeRawPtr<CSSValue> centerY; |
- args->next(); // set list to start of position center |
parseFillPosition(args, centerX, centerY); |
if (centerX && centerY && !args->current()) { |
ASSERT(centerX->isPrimitiveValue()); |
@@ -4247,9 +4246,9 @@ PassRefPtrWillBeRawPtr<CSSBasicShape> CSSPropertyParser::parseBasicShapeEllipse( |
ASSERT(args); |
// ellipse(radiusX) |
- // ellipse(radiusX at <position> |
+ // ellipse(radiusX at <position>) |
// ellipse(radiusX radiusY) |
- // ellipse(radiusX radiusY at <position> |
+ // ellipse(radiusX radiusY at <position>) |
// ellipse(at <position>) |
// where position defines centerX and centerY using a CSS <position> data type. |
RefPtrWillBeRawPtr<CSSBasicShapeEllipse> shape = CSSBasicShapeEllipse::create(); |
@@ -4273,11 +4272,10 @@ PassRefPtrWillBeRawPtr<CSSBasicShape> CSSPropertyParser::parseBasicShapeEllipse( |
return nullptr; |
} |
- if (argument->id != CSSValueAt) |
+ if (argument->id != CSSValueAt || !args->next()) // expecting ellipse(.. at <position>) |
return nullptr; |
RefPtrWillBeRawPtr<CSSValue> centerX; |
RefPtrWillBeRawPtr<CSSValue> centerY; |
- args->next(); // set list to start of position center |
parseFillPosition(args, centerX, centerY); |
if (!centerX || !centerY || args->current()) |
return nullptr; |