Commit cf7d908c48007c4340aeee787e58e4002727973b

Werner Lemberg 2004-02-02T19:41:09

* src/type1/t1load.c (parse_charstrings): Exit immediately if there are no elements in /CharStrings. This is needed for fonts like Optima-Oblique which not only define /CharStrings but access it also.

diff --git a/ChangeLog b/ChangeLog
index fb6b505..c839990 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,18 +1,24 @@
+2004-02-01  Werner Lemberg  <wl@gnu.org>
+
+	* src/type1/t1load.c (parse_charstrings): Exit immediately if
+	there are no elements in /CharStrings.  This is needed for fonts
+	like Optima-Oblique which not only define /CharStrings but access it
+	also.
+
 2004-02-01  David Turner  <david@freetype.org>
 
-        * src/sfnt/Jamfile: removing "ttcmap" from the list of sources
+	* src/sfnt/Jamfile: Removing `ttcmap' from the list of sources.
 
-        * src/cache/*, include/freetype/cache/*: fixing a bug after heavy
-        testing. The current sources are now "release candidates" for the
-        final version of the cache sub-system
+	* src/cache/*, include/freetype/cache/*: Fixing a bug after heavy
+	testing.  The current sources are now `release candidates' for the
+	final version of the cache sub-system.
 
-        * Jamfile: updating "refdoc" target, and adding "autohint" to the
-        list of modules to build. Both the autohinter and autofitter will be
-        built by default. But which one will be used is determined by
-        the content of "ftmodule.h"
+	* Jamfile: Updating `refdoc' target, and adding `autohint' to the
+	list of modules to build.  Both the autohinter and autofitter will
+	be built by default.  But which one will be used is determined by
+	the content of `ftmodule.h'.
 
-        * src/autofit/*: much updates, but the code is still buggy as hell.
-        Aargh..
+	* src/autofit/*: Much updates, but the code is still buggy...
 
 2004-01-31  Werner Lemberg  <wl@gnu.org>
 
diff --git a/src/type1/t1load.c b/src/type1/t1load.c
index 0b571c7..543bd18 100644
--- a/src/type1/t1load.c
+++ b/src/type1/t1load.c
@@ -1189,7 +1189,9 @@
 
 
     num_glyphs = (FT_Int)T1_ToInt( parser );
-    if ( parser->root.error )
+    /* some fonts like Optima-Oblique not only define the /CharStrings */
+    /* array but access it also                                        */
+    if ( num_glyphs == 0 || parser->root.error )
       return;
 
     /* initialize tables, leaving space for addition of .notdef, */