diff options
author | Loïc Minier <lool@dooz.org> | 2009-04-15 00:15:37 +0200 |
---|---|---|
committer | Loïc Minier <lool@dooz.org> | 2009-04-15 00:15:37 +0200 |
commit | 21ddd58d96dce367cb8f479b790cdc21564011c9 (patch) | |
tree | 43a60c1ec016d310c27475d285cb25f827778d84 /src/cairo-arc.c | |
parent | f4713253ccf85d454c2d7ae0322ff63c5144bbc9 (diff) |
Imported Upstream version 1.8.4
Diffstat (limited to 'src/cairo-arc.c')
-rw-r--r-- | src/cairo-arc.c | 6 |
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; |