* src/base/ftobjs.c (open_face): Check `clazz->init_face' and

`clazz->done_face'.

Update documentation of FT_Driver_ClassRec.
This commit is contained in:
Werner Lemberg 2008-06-10 04:57:19 +00:00
parent 26bd7a2c5d
commit 102bb83afd
3 changed files with 16 additions and 13 deletions

View File

@ -1,3 +1,8 @@
2008-06-10 Werner Lemberg <wl@gnu.org>
* src/base/ftobjs.c (open_face): Check `clazz->init_face' and
`clazz->done_face'.
2008-06-09 VaDiM <s_sliva@rambler.ru>
Support debugging on WinCE. From Savannah patch #6536; this fixes

View File

@ -4,7 +4,7 @@
/* */
/* FreeType font driver interface (specification). */
/* */
/* Copyright 1996-2001, 2002, 2003, 2006 by */
/* Copyright 1996-2001, 2002, 2003, 2006, 2008 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@ -145,10 +145,6 @@ FT_BEGIN_HEADER
/* load_glyph :: A function handle to load a glyph to a slot. */
/* This field is mandatory! */
/* */
/* get_char_index :: A function handle to return the glyph index of */
/* a given character for a given charmap. This */
/* field is mandatory! */
/* */
/* get_kerning :: A function handle to return the unscaled */
/* kerning for a given pair of glyphs. Can be */
/* set to 0 if the format doesn't support */
@ -180,8 +176,8 @@ FT_BEGIN_HEADER
/* to 0 if the scaling done in the base layer */
/* suffices. */
/* <Note> */
/* Most function pointers, with the exception of `load_glyph' and */
/* `get_char_index' can be set to 0 to indicate a default behaviour. */
/* Most function pointers, with the exception of `load_glyph', can be */
/* set to 0 to indicate a default behaviour. */
/* */
typedef struct FT_Driver_ClassRec_
{

View File

@ -1068,11 +1068,12 @@
}
#endif
error = clazz->init_face( stream,
face,
(FT_Int)face_index,
num_params,
params );
if ( class->init_face )
error = clazz->init_face( stream,
face,
(FT_Int)face_index,
num_params,
params );
if ( error )
goto Fail;
@ -1095,7 +1096,8 @@
if ( error )
{
destroy_charmaps( face, memory );
clazz->done_face( face );
if ( clazz->done_face )
clazz->done_face( face );
FT_FREE( internal );
FT_FREE( face );
*aface = 0;