Applied Tom's patches to improve CFF handling.

This commit is contained in:
Werner Lemberg 2000-06-09 05:25:19 +00:00
parent 2b9be99c2a
commit cb9109fc40
1 changed files with 24 additions and 11 deletions

View File

@ -406,22 +406,35 @@
error = t2_new_cff_index( &font->charstrings_index, stream, 0 );
if (error) goto Exit;
/* read the local subrs */
if ( FILE_Seek( base_offset + font->top_dict.private_offset +
font->private_dict.local_subrs_offset ) )
goto Exit;
/* read the local subrs, if any */
if (font->private_dict.local_subrs_offset) {
if ( FILE_Seek( base_offset + font->top_dict.private_offset +
font->private_dict.local_subrs_offset ) )
goto Exit;
error = t2_new_cff_index( &font->local_subrs_index, stream, 1 );
if (error) goto Exit;
error = t2_new_cff_index( &font->local_subrs_index, stream, 1 );
if (error) goto Exit;
}
/* explicit the global and local subrs */
font->num_local_subrs = font->local_subrs_index.count;
if (font->private_dict.local_subrs_offset) {
font->num_local_subrs = font->local_subrs_index.count;
} else {
font->num_local_subrs = 0;
}
font->num_global_subrs = font->global_subrs_index.count;
error = t2_explicit_cff_index( &font->global_subrs_index,
&font->global_subrs ) ||
t2_explicit_cff_index( &font->local_subrs_index,
&font->local_subrs );
error = t2_explicit_cff_index( &font->global_subrs_index, &font->global_subrs ) ;
if (font->private_dict.local_subrs_offset) {
error |= t2_explicit_cff_index( &font->local_subrs_index, &font->local_subrs ) ;
}
if (error) goto Exit;
}