@ -168,47 +168,53 @@
FT_Memory memory = cffsize - > face - > memory ;
CFF_Internal internal = NULL ;
CFF_Face face = ( CFF_Face ) cffsize - > face ;
CFF_Font font = ( CFF_Font ) face - > extra . data ;
PS_PrivateRec priv ;
if ( funcs )
{
CFF_Face face = ( CFF_Face ) cffsize - > face ;
CFF_Font font = ( CFF_Font ) face - > extra . data ;
PS_PrivateRec priv ;
FT_UInt i ;
FT_UInt i ;
if ( ! funcs )
goto Exit ;
if ( FT_NEW ( internal ) )
goto Exit ;
if ( FT_NEW ( internal ) )
goto Exit ;
cff_make_private_dict ( & font - > top_font , & priv ) ;
error = funcs - > create ( cffsize - > face - > memory , & priv ,
cff_make_private_dict ( & font - > top_font , & priv ) ;
error = funcs - > create ( cffsize - > face - > memory , & priv ,
& internal - > topfont ) ;
if ( error )
goto Exit ;
if ( error )
goto Exit ;
for ( i = font - > num_subfonts ; i > 0 ; i - - )
{
CFF_SubFont sub = font - > subfonts [ i - 1 ] ;
for ( i = font - > num_subfonts ; i > 0 ; i - - )
{
CFF_SubFont sub = font - > subfonts [ i - 1 ] ;
cff_make_private_dict ( sub , & priv ) ;
error = funcs - > create ( cffsize - > face - > memory , & priv ,
cff_make_private_dict ( sub , & priv ) ;
error = funcs - > create ( cffsize - > face - > memory , & priv ,
& internal - > subfonts [ i - 1 ] ) ;
if ( error )
goto Exit ;
}
cffsize - > internal - > module_data = internal ;
if ( error )
goto Exit ;
}
cffsize - > internal - > module_data = internal ;
size - > strike_index = 0xFFFFFFFFUL ;
Exit :
if ( error )
{
if ( internal )
{
for ( i = font - > num_subfonts ; i > 0 ; i - - )
FT_FREE ( internal - > subfonts [ i - 1 ] ) ;
FT_FREE ( internal - > topfont ) ;
}
FT_FREE ( internal ) ;
}
return error ;
}