* src/base/ftobjs.c (destroy_charmaps): New function.

(destroy_face, open_face): Use `destroy_charmaps'.
This commit is contained in:
Werner Lemberg 2004-01-05 14:41:59 +00:00
parent 9914b97af2
commit 4338dab2f8
3 changed files with 32 additions and 21 deletions

View File

@ -1,3 +1,8 @@
2004-01-03 Masatake YAMATO <jet@gyve.org>
* src/base/ftobjs.c (destroy_charmaps): New function.
(destroy_face, open_face): Use `destroy_charmaps'.
2004-01-01 Werner Lemberg <wl@gnu.org>
* docs/CHANGES: Updated.

View File

@ -4,7 +4,7 @@
/* */
/* The FreeType private base classes (body). */
/* */
/* Copyright 1996-2001, 2002, 2003 by */
/* Copyright 1996-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, */
@ -669,6 +669,28 @@
}
static void
destroy_charmaps( FT_Face face,
FT_Memory memory )
{
FT_Int n;
for ( n = 0; n < face->num_charmaps; n++ )
{
FT_CMap cmap = FT_CMAP( face->charmaps[n] );
FT_CMap_Done( cmap );
face->charmaps[n] = NULL;
}
FT_FREE( face->charmaps );
face->num_charmaps = 0;
}
/* destructor for faces list */
static void
destroy_face( FT_Memory memory,
@ -699,25 +721,8 @@
face->generic.finalizer( face );
/* discard charmaps */
{
FT_Int n;
for ( n = 0; n < face->num_charmaps; n++ )
{
FT_CMap cmap = FT_CMAP( face->charmaps[n] );
FT_CMap_Done( cmap );
face->charmaps[n] = NULL;
}
FT_FREE( face->charmaps );
face->num_charmaps = 0;
}
destroy_charmaps( face, memory );
/* finalize format-specific stuff */
if ( clazz->done_face )
clazz->done_face( face );
@ -924,6 +929,7 @@
Fail:
if ( error )
{
destroy_charmaps( face, memory );
clazz->done_face( face );
FT_FREE( internal );
FT_FREE( face );

View File

@ -4,7 +4,7 @@
/* */
/* FreeType font driver for Windows FNT/FON files */
/* */
/* Copyright 1996-2001, 2002, 2003 by */
/* Copyright 1996-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, */