ref: 102bb83afddf6dcb60c0eee0621b9e92ee3c157e
parent: 26bd7a2c5d112143766d905de4346f738a2d4fb6
author: Werner Lemberg <[email protected]>
date: Tue Jun 10 00:57:19 EDT 2008
* src/base/ftobjs.c (open_face): Check `clazz->init_face' and `clazz->done_face'. Update documentation of FT_Driver_ClassRec.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-06-10 Werner Lemberg <[email protected]>
+
+ * src/base/ftobjs.c (open_face): Check `clazz->init_face' and
+ `clazz->done_face'.
+
2008-06-09 VaDiM <[email protected]>
Support debugging on WinCE. From Savannah patch #6536; this fixes
--- a/include/freetype/internal/ftdriver.h
+++ b/include/freetype/internal/ftdriver.h
@@ -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 @@
/* 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 @@
/* 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_
{
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -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;