diff options
author | Alexei Podtelezhnikov <apodtele@gmail.com> | 2011-03-17 20:24:57 +0100 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2011-03-17 20:24:57 +0100 |
commit | 8fb8841430e34b4e61f6e79bb983479ca831e266 (patch) | |
tree | bf4a0db3d2376f53dd840d5d6183fce724868202 | |
parent | 437fb8ebf8fbbf89c70d87562d21ea49d5ef932b (diff) |
A better fix for Savannah bug #32671.
* src/smooth/ftgrays.c (gray_render_conic): Clean up code and
replace WHILE loop with a more natural DO-WHILE construct.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | src/smooth/ftgrays.c | 13 |
2 files changed, 10 insertions, 10 deletions
@@ -1,3 +1,10 @@ +2011-03-17 Alexei Podtelezhnikov <apodtele@gmail.com> + + A better fix for Savannah bug #32671. + + * src/smooth/ftgrays.c (gray_render_conic): Clean up code and + replace WHILE loop with a more natural DO-WHILE construct. + 2011-03-16 Werner Lemberg <wl@gnu.org>. * src/base/ftstroke.c (FT_StrokerRec): Remove unused `valid' field. diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c index 648c75e8..40de2691 100644 --- a/src/smooth/ftgrays.c +++ b/src/smooth/ftgrays.c @@ -4,7 +4,7 @@ /* */ /* A new `perfect' anti-aliasing renderer (body). */ /* */ -/* Copyright 2000-2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010 by */ +/* Copyright 2000-2003, 2005-2011 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -890,12 +890,6 @@ typedef ptrdiff_t FT_PtrDist; if ( dx < dy ) dx = dy; - if ( dx <= ONE_PIXEL / 4 ) - { - gray_render_line( RAS_VAR_ arc[0].x, arc[0].y ); - return; - } - level = 0; while ( dx > ONE_PIXEL / 6 ) { @@ -907,7 +901,7 @@ typedef ptrdiff_t FT_PtrDist; levels[0] = level; top = 0; - while ( top >= 0 ) + do { level = levels[top]; if ( level > 1 ) @@ -940,9 +934,8 @@ typedef ptrdiff_t FT_PtrDist; gray_render_line( RAS_VAR_ arc[0].x, arc[0].y ); top--; arc -= 2; - } - return; + } while ( top >= 0 ); } |