Commit edeed6b391a6158eb1948efc28a19694272b580e

Werner Lemberg 2004-01-15T16:12:36

* 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).

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;