diff --git a/ChangeLog b/ChangeLog index 3869fc2db..597280115 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,10 +3,10 @@ Fix Savannah bug #30648. * src/base/ftobjs.c (FT_Done_Library): Specify the order of font - drivers in face closing process. Type42 faces should be closed - before TrueType faces, because a Type42 face refers another - internal TrueType face which is created from sfnt[] array on the - memory. + drivers during the face closing process. Type42 faces should be + closed before TrueType faces, because a Type42 face refers to + another internal TrueType face which is created from sfnt[] array on + the memory. 2010-08-06 Yuriy Kaminskiy @@ -19,7 +19,7 @@ Fix Savannah bug #30658. - * src/base/ftobjs.c (Mac_Read_POST_Resource): Check the total + * src/base/ftobjs.c (Mac_Read_POST_Resource): Check that the total length of collected POST segments does not overrun the allocated buffer. diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c index 7582f5b19..7f38df0cb 100644 --- a/src/base/ftobjs.c +++ b/src/base/ftobjs.c @@ -4408,8 +4408,10 @@ if ( library->generic.finalizer ) library->generic.finalizer( library ); - /* Close all faces in the library. If we don't do - * this, we can have some subtle memory leaks. + /* + * Close all faces in the library. If we don't do this, we can have + * some subtle memory leaks. + * * Example: * * - the cff font driver uses the pshinter module in cff_size_done @@ -4417,35 +4419,37 @@ * opened FT_Face objects managed by the driver are not properly * destroyed, resulting in a memory leak * - * Some faces are dependent with other faces, like Type42 faces that - * depends on TrueType face synthesized internally. - * The order of driver should be described in driver_name[]. + * Some faces are dependent on other faces, like Type42 faces that + * depend on TrueType faces synthesized internally. + * + * The order of drivers should be specified in driver_name[]. */ { - FT_UInt m, n; - const char* driver_name[] = { "type42", NULL }; + FT_UInt m, n; + const char* driver_name[] = { "type42", NULL }; for ( m = 0; - m < sizeof( driver_name ) / sizeof( driver_name[0] ); - m ++ ) + m < sizeof ( driver_name ) / sizeof ( driver_name[0] ); + m++ ) { for ( n = 0; n < library->num_modules; n++ ) { - FT_Module module = library->modules[n]; + FT_Module module = library->modules[n]; const char* module_name = module->clazz->module_name; FT_List faces; if ( driver_name[m] && - 0 != ft_strcmp( module_name, driver_name[m] ) ) + ft_strcmp( module_name, driver_name[m] ) != 0 ) continue; if ( ( module->clazz->module_flags & FT_MODULE_FONT_DRIVER ) == 0 ) continue; FT_TRACE7(( "FT_Done_Library: close faces for %s\n", module_name )); - faces = &FT_DRIVER(module)->faces_list; + + faces = &FT_DRIVER( module )->faces_list; while ( faces->head ) { FT_Done_Face( FT_FACE( faces->head->data ) );