@ -373,15 +373,6 @@
# endif
/* we don't want to touch the source code -- use macro trick */
# define start_point t1_builder_start_point
# define check_points t1_builder_check_points
# define add_point t1_builder_add_point
# define add_point1 t1_builder_add_point1
# define add_contour t1_builder_add_contour
# define close_contour t1_builder_close_contour
/* compute random seed from stack address of parameter */
seed = ( FT_Fixed ) ( ( ( FT_PtrDist ) ( char * ) & seed ^
( FT_PtrDist ) ( char * ) & decoder ^
@ -739,8 +730,10 @@
decoder - > flex_state = 1 ;
decoder - > num_flex_vectors = 0 ;
if ( start_point ( builder , x , y ) | |
check_points ( builder , 6 ) )
if ( ( error = t1_builder_start_point ( builder , x , y ) )
! = PSaux_Err_Ok | |
( error = t1_builder_check_points ( builder , 6 ) )
! = PSaux_Err_Ok )
goto Fail ;
break ;
@ -757,10 +750,10 @@
/* point without adding any point to the outline */
idx = decoder - > num_flex_vectors + + ;
if ( idx > 0 & & idx < 7 )
add_point ( builder ,
x ,
y ,
( FT_Byte ) ( idx = = 3 | | idx = = 6 ) ) ;
t1_builder_ add_point( builder ,
x ,
y ,
( FT_Byte ) ( idx = = 3 | | idx = = 6 ) ) ;
}
break ;
@ -1077,7 +1070,7 @@
case op_endchar :
FT_TRACE4 ( ( " endchar \n " ) ) ;
close_contour ( builder ) ;
t1_builder_ close_contour( builder ) ;
/* close hints recording session */
if ( hinter )
@ -1176,7 +1169,7 @@
/* if there is no path, `closepath' is a no-op */
if ( builder - > parse_state = = T1_Parse_Have_Path | |
builder - > parse_state = = T1_Parse_Have_Moveto )
close_contour ( builder ) ;
t1_builder_ close_contour( builder ) ;
builder - > parse_state = T1_Parse_Have_Width ;
break ;
@ -1184,7 +1177,8 @@
case op_hlineto :
FT_TRACE4 ( ( " hlineto " ) ) ;
if ( start_point ( builder , x , y ) )
if ( ( error = t1_builder_start_point ( builder , x , y ) )
! = PSaux_Err_Ok )
goto Fail ;
x + = top [ 0 ] ;
@ -1205,30 +1199,34 @@
case op_hvcurveto :
FT_TRACE4 ( ( " hvcurveto " ) ) ;
if ( start_point ( builder , x , y ) | |
check_points ( builder , 3 ) )
if ( ( error = t1_builder_start_point ( builder , x , y ) )
! = PSaux_Err_Ok | |
( error = t1_builder_check_points ( builder , 3 ) )
! = PSaux_Err_Ok )
goto Fail ;
x + = top [ 0 ] ;
add_point ( builder , x , y , 0 ) ;
t1_builder_ add_point( builder , x , y , 0 ) ;
x + = top [ 1 ] ;
y + = top [ 2 ] ;
add_point ( builder , x , y , 0 ) ;
t1_builder_ add_point( builder , x , y , 0 ) ;
y + = top [ 3 ] ;
add_point ( builder , x , y , 1 ) ;
t1_builder_ add_point( builder , x , y , 1 ) ;
break ;
case op_rlineto :
FT_TRACE4 ( ( " rlineto " ) ) ;
if ( start_point ( builder , x , y ) )
if ( ( error = t1_builder_start_point ( builder , x , y ) )
! = PSaux_Err_Ok )
goto Fail ;
x + = top [ 0 ] ;
y + = top [ 1 ] ;
Add_Line :
if ( add_point1 ( builder , x , y ) )
if ( ( error = t1_builder_add_point1 ( builder , x , y ) )
! = PSaux_Err_Ok )
goto Fail ;
break ;
@ -1248,43 +1246,48 @@
case op_rrcurveto :
FT_TRACE4 ( ( " rrcurveto " ) ) ;
if ( start_point ( builder , x , y ) | |
check_points ( builder , 3 ) )
if ( ( error = t1_builder_start_point ( builder , x , y ) )
! = PSaux_Err_Ok | |
( error = t1_builder_check_points ( builder , 3 ) )
! = PSaux_Err_Ok )
goto Fail ;
x + = top [ 0 ] ;
y + = top [ 1 ] ;
add_point ( builder , x , y , 0 ) ;
t1_builder_ add_point( builder , x , y , 0 ) ;
x + = top [ 2 ] ;
y + = top [ 3 ] ;
add_point ( builder , x , y , 0 ) ;
t1_builder_ add_point( builder , x , y , 0 ) ;
x + = top [ 4 ] ;
y + = top [ 5 ] ;
add_point ( builder , x , y , 1 ) ;
t1_builder_ add_point( builder , x , y , 1 ) ;
break ;
case op_vhcurveto :
FT_TRACE4 ( ( " vhcurveto " ) ) ;
if ( start_point ( builder , x , y ) | |
check_points ( builder , 3 ) )
if ( ( error = t1_builder_start_point ( builder , x , y ) )
! = PSaux_Err_Ok | |
( error = t1_builder_check_points ( builder , 3 ) )
! = PSaux_Err_Ok )
goto Fail ;
y + = top [ 0 ] ;
add_point ( builder , x , y , 0 ) ;
t1_builder_ add_point( builder , x , y , 0 ) ;
x + = top [ 1 ] ;
y + = top [ 2 ] ;
add_point ( builder , x , y , 0 ) ;
t1_builder_ add_point( builder , x , y , 0 ) ;
x + = top [ 3 ] ;
add_point ( builder , x , y , 1 ) ;
t1_builder_ add_point( builder , x , y , 1 ) ;
break ;
case op_vlineto :
FT_TRACE4 ( ( " vlineto " ) ) ;
if ( start_point ( builder , x , y ) )
if ( ( error = t1_builder_start_point ( builder , x , y ) )
! = PSaux_Err_Ok )
goto Fail ;
y + = top [ 0 ] ;