* src/cff/cffload.c (cff_font_load): Load charstrings_index earlier. Use number of charstrings as argument to CFF_Load_FD_Select (as documented in the CFF specs).
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
diff --git a/ChangeLog b/ChangeLog
index 651f78f..97a77d9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-01-14 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffload.c (cff_font_load): Load charstrings_index earlier.
+ Use number of charstrings as argument to CFF_Load_FD_Select (as
+ documented in the CFF specs).
+
2004-01-13 Graham Asher <graham.asher@btinternet.com>
* src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of
diff --git a/src/cff/cffload.c b/src/cff/cffload.c
index d77959d..8f92a42 100644
--- a/src/cff/cffload.c
+++ b/src/cff/cffload.c
@@ -2160,6 +2160,13 @@
if ( error )
goto Exit;
+ if ( FT_STREAM_SEEK( base_offset + dict->charstrings_offset ) )
+ goto Exit;
+
+ error = cff_new_index( &font->charstrings_index, stream, 0 );
+ if ( error )
+ goto Exit;
+
/* now, check for a CID font */
if ( dict->cid_registry != 0xFFFFU )
{
@@ -2204,7 +2211,7 @@
/* now load the FD Select array */
error = CFF_Load_FD_Select( &font->fd_select,
- (FT_UInt)dict->cid_count,
+ font->charstrings_index.count,
stream,
base_offset + dict->cid_fd_select_offset );
@@ -2225,13 +2232,6 @@
goto Exit;
}
- if ( FT_STREAM_SEEK( base_offset + dict->charstrings_offset ) )
- goto Exit;
-
- error = cff_new_index( &font->charstrings_index, stream, 0 );
- if ( error )
- goto Exit;
-
/* explicit the global subrs */
font->num_global_subrs = font->global_subrs_index.count;
font->num_glyphs = font->charstrings_index.count;