Commit f9831a6675204183b89439cfcc437dd37d5c869a

Werner Lemberg 2004-01-15T11:02:07

* src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of `glyph->memory' up to free arrays properly in case of failure.

diff --git a/ChangeLog b/ChangeLog
index 343bd79..651f78f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-01-13  Graham Asher  <graham.asher@btinternet.com>
+
+	* src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of
+	`glyph->memory' up to free arrays properly in case of failure.
+
 2004-01-10  Masatake YAMATO  <jet@gyve.org>
 
 	Make `FT_Get_CMap_Language_ID' work with CFF.  Bug reported by
diff --git a/src/pshinter/pshalgo.c b/src/pshinter/pshalgo.c
index 4b7a7dc..30ad1fb 100644
--- a/src/pshinter/pshalgo.c
+++ b/src/pshinter/pshalgo.c
@@ -2,9 +2,9 @@
 /*                                                                         */
 /*  pshalgo.c                                                              */
 /*                                                                         */
-/*    PostScript hinting algorithm 3 (body).                               */
+/*    PostScript hinting algorithm (body).                                 */
 /*                                                                         */
-/*  Copyright 2001, 2002, 2003 by                                          */
+/*  Copyright 2001, 2002, 2003, 2004 by                                    */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used        */
@@ -1110,7 +1110,7 @@
     /* clear all fields */
     FT_MEM_ZERO( glyph, sizeof ( *glyph ) );
 
-    memory = globals->memory;
+    memory = glyph->memory = globals->memory;
 
     /* allocate and setup points + contours arrays */
     if ( FT_NEW_ARRAY( glyph->points,   outline->n_points   ) ||
@@ -1217,7 +1217,6 @@
       }
     }
 
-    glyph->memory  = memory;
     glyph->outline = outline;
     glyph->globals = globals;