Remove redundant code; fix computation of `last'.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
diff --git a/src/base/ftbbox.c b/src/base/ftbbox.c
index f53432a..4e84235 100644
--- a/src/base/ftbbox.c
+++ b/src/base/ftbbox.c
@@ -45,7 +45,8 @@
/* <Description> */
/* This function is used as a `move_to' and `line_to' emitter during */
/* FT_Outline_Decompose(). It simply records the destination point */
- /* in `user->last'. */
+ /* in `user->last'; no further computations are necessary since we */
+ /* the cbox as the starting bbox which must be refined. */
/* */
/* <Input> */
/* to :: A pointer to the destination vector. */
@@ -99,13 +100,10 @@
FT_Pos* min,
FT_Pos* max )
{
- if( y1 == y3 )
+ if ( y1 == y3 )
{
if ( y2 == y1 ) /* Flat arc */
- {
- y3 = y1;
goto Suite;
- }
}
else if ( y1 < y3 )
{
@@ -179,6 +177,8 @@
&user->bbox.yMin,
&user->bbox.yMax );
+ user->last = *to;
+
return 0;
}
@@ -232,10 +232,7 @@
if ( y1 == y4 )
{
if ( y1 == y2 && y1 == y3 ) /* Flat */
- {
- y4 = y1;
goto Test;
- }
}
else if ( y1 < y4 )
{
@@ -330,6 +327,8 @@
&user->bbox.yMin,
&user->bbox.yMax );
+ user->last = *to;
+
return 0;
}