fix for inexistent sfnt ID in broken FOND

This commit is contained in:
Suzuki, Toshiya (鈴木俊哉) 2008-02-15 09:12:59 +00:00
parent aa722df478
commit d2c55ab0e4
3 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,15 @@
2008-02-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource
handle by its value instead of ResError(), fix provided by Deron
Kazmaier. According to Resource Manager Reference, GetResource(),
Get1Resource(), GetNamedResource(), Get1NamedResource()
and RGetResource() set noErr but returns NULL handle when they can
not find requested resource. These functions never return undefined
values, so it is sufficient to check if the handle is not NULL.
* builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
2008-02-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other

View File

@ -1207,7 +1207,7 @@ typedef short ResourceIndex;
sfnt = GetResource( FT_MAKE_TAG( 's', 'f', 'n', 't' ), sfnt_id );
if ( ResError() )
if ( sfnt == NULL )
return FT_Err_Invalid_Handle;
sfnt_size = (FT_ULong)GetHandleSize( sfnt );

View File

@ -828,7 +828,7 @@ typedef short ResourceIndex;
sfnt = GetResource( FT_MAKE_TAG( 's', 'f', 'n', 't' ), sfnt_id );
if ( ResError() )
if ( sfnt == NULL )
return FT_Err_Invalid_Handle;
sfnt_size = (FT_ULong)GetHandleSize( sfnt );