summaryrefslogtreecommitdiff
path: root/src/cairo-arc.c
diff options
context:
space:
mode:
authorLoïc Minier <lool@dooz.org>2009-04-15 00:15:37 +0200
committerLoïc Minier <lool@dooz.org>2009-04-15 00:15:37 +0200
commit21ddd58d96dce367cb8f479b790cdc21564011c9 (patch)
tree43a60c1ec016d310c27475d285cb25f827778d84 /src/cairo-arc.c
parentf4713253ccf85d454c2d7ae0322ff63c5144bbc9 (diff)
Imported Upstream version 1.8.4
Diffstat (limited to 'src/cairo-arc.c')
-rw-r--r--src/cairo-arc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cairo-arc.c b/src/cairo-arc.c
index 89e6ce1..2b36809 100644
--- a/src/cairo-arc.c
+++ b/src/cairo-arc.c
@@ -181,13 +181,15 @@ _cairo_arc_in_direction (cairo_t *cr,
double angle_max,
cairo_direction_t dir)
{
+ if (cairo_status (cr))
+ return;
+
while (angle_max - angle_min > 4 * M_PI)
angle_max -= 2 * M_PI;
/* Recurse if drawing arc larger than pi */
if (angle_max - angle_min > M_PI) {
double angle_mid = angle_min + (angle_max - angle_min) / 2.0;
- /* XXX: Something tells me this block could be condensed. */
if (dir == CAIRO_DIRECTION_FORWARD) {
_cairo_arc_in_direction (cr, xc, yc, radius,
angle_min, angle_mid,
@@ -205,7 +207,7 @@ _cairo_arc_in_direction (cairo_t *cr,
angle_min, angle_mid,
dir);
}
- } else {
+ } else if (angle_max != angle_min) {
cairo_matrix_t ctm;
int i, segments;
double angle, angle_step;