diff options
Diffstat (limited to 'xorg-server/mi/mifillarc.c')
-rw-r--r-- | xorg-server/mi/mifillarc.c | 5 |
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 + |