Commit 48f26bc74837146d4d71b717d9549a2b4aa4180c

Tom Kacvinsky 2001-10-20T17:44:48

In functions parse_font_name and parse_subrs, added a test for when loading synthetic fonts to make sure that the font name and subrotuines are not loaded twice. This is to remove a memory leak that occurs because the original allocation for these objects is not deallocated when the objects are read the second time.

diff --git a/src/type1/t1load.c b/src/type1/t1load.c
index ce6607f..7196679 100644
--- a/src/type1/t1load.c
+++ b/src/type1/t1load.c
@@ -827,6 +827,9 @@
     FT_Byte*       cur2;
     FT_Byte*       limit;
 
+    if ( face->type1.font_name )
+      /*  with synthetic fonts, it's possible we get here twice  */
+      return;
 
     T1_Skip_Spaces( parser );
 
@@ -1095,6 +1098,9 @@
 
     PSAux_Interface*  psaux = (PSAux_Interface*)face->psaux;
 
+    if ( loader->num_subrs )
+      /*  with synthetic fonts, it's possible we get here twice  */
+      return;
 
     loader->num_subrs = T1_ToInt( parser );
     if ( parser->root.error )