From 1434300528a9502c7ebdce6087f399b1f47daa9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sat, 3 Jun 2006 22:30:15 +0000 Subject: [PATCH] As Stephan pointed out, I accidently misread the previous max_c() construct. Apparently, there was an integer overflow of some kind with BePYRO, but this version if safe as well, and should look much better. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17716 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/drawing/Painter/Painter.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/servers/app/drawing/Painter/Painter.cpp b/src/servers/app/drawing/Painter/Painter.cpp index 6b02577069..7cf6afac29 100644 --- a/src/servers/app/drawing/Painter/Painter.cpp +++ b/src/servers/app/drawing/Painter/Painter.cpp @@ -856,10 +856,11 @@ Painter::DrawEllipse(BRect r, bool fill) const BPoint center(r.left + xRadius, r.top + yRadius); int32 divisions = (int32)((xRadius + yRadius + 2 * fPenSize) * PI / 2); - if (divisions > 12) + if (divisions < 12) divisions = 12; - if (divisions < 1) - divisions = 1; + // TODO: arbitrarily set upper limit - should be tested... + if (divisions > 32768) + divisions = 32768; if (fill) { agg::ellipse path(center.x, center.y, xRadius, yRadius, divisions);