aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/mi/mifillarc.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/mi/mifillarc.c')
-rw-r--r--xorg-server/mi/mifillarc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/xorg-server/mi/mifillarc.c b/xorg-server/mi/mifillarc.c
index 246d70ff4..888519edf 100644
--- a/xorg-server/mi/mifillarc.c
+++ b/xorg-server/mi/mifillarc.c
@@ -660,6 +660,11 @@ miPolyFillArc(DrawablePtr pDraw, GCPtr pGC, int narcs_all, xArc * parcs)
if (narcs && nspans + arc->height > MAX_SPANS_PER_LOOP)
break;
nspans += arc->height;
+
+ /* A pie-slice arc may add another pile of spans */
+ if (pGC->arcMode == ArcPieSlice &&
+ (-FULLCIRCLE < arc->angle2 && arc->angle2 < FULLCIRCLE))
+ nspans += (arc->height + 1) >> 1;
}
pts = points = malloc (sizeof (DDXPointRec) * nspans +