|
|
|
@ -110,10 +110,9 @@ |
|
|
|
|
return result; |
|
|
|
|
|
|
|
|
|
if ( (FT_ULong)face->num_glyphs > FT_UINT_MAX || 0 > face->num_glyphs ) |
|
|
|
|
{ |
|
|
|
|
FT_TRACE1(( "ftc_basic_family_get_count: too large number of glyphs " )); |
|
|
|
|
FT_TRACE1(( "in this face, truncated\n", face->num_glyphs )); |
|
|
|
|
} |
|
|
|
|
FT_TRACE1(( "ftc_basic_family_get_count:" |
|
|
|
|
" too large number of glyphs in this face, truncated\n", |
|
|
|
|
face->num_glyphs )); |
|
|
|
|
|
|
|
|
|
if ( !error ) |
|
|
|
|
result = (FT_UInt)face->num_glyphs; |
|
|
|
@ -287,7 +286,7 @@ |
|
|
|
|
FT_PtrDist hash; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* some argument checks are delayed to FTC_Cache_Lookup */ |
|
|
|
|
/* some argument checks are delayed to `FTC_Cache_Lookup' */ |
|
|
|
|
if ( !aglyph ) |
|
|
|
|
{ |
|
|
|
|
error = FT_THROW( Invalid_Argument ); |
|
|
|
@ -298,18 +297,15 @@ |
|
|
|
|
if ( anode ) |
|
|
|
|
*anode = NULL; |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
if ( (FT_ULong)(type->flags - FT_INT_MIN) > FT_UINT_MAX ) |
|
|
|
|
{ |
|
|
|
|
FT_TRACE1(( "FTC_ImageCache_Lookup: higher bits in load_flags" )); |
|
|
|
|
FT_TRACE1(( "0x%x are dropped\n", (type->flags & ~((FT_ULong)FT_UINT_MAX)) )); |
|
|
|
|
} |
|
|
|
|
if ( (FT_ULong)( type->flags - FT_INT_MIN ) > FT_UINT_MAX ) |
|
|
|
|
FT_TRACE1(( "FTC_ImageCache_Lookup:" |
|
|
|
|
" higher bits in load_flags 0x%x are dropped\n", |
|
|
|
|
type->flags & ~((FT_ULong)FT_UINT_MAX) )); |
|
|
|
|
|
|
|
|
|
query.attrs.scaler.face_id = type->face_id; |
|
|
|
|
query.attrs.scaler.width = type->width; |
|
|
|
|
query.attrs.scaler.height = type->height; |
|
|
|
|
query.attrs.load_flags = (FT_UInt)type->flags; |
|
|
|
|
} |
|
|
|
|
query.attrs.scaler.face_id = type->face_id; |
|
|
|
|
query.attrs.scaler.width = type->width; |
|
|
|
|
query.attrs.scaler.height = type->height; |
|
|
|
|
query.attrs.load_flags = (FT_UInt)type->flags; |
|
|
|
|
|
|
|
|
|
query.attrs.scaler.pixel = 1; |
|
|
|
|
query.attrs.scaler.x_res = 0; /* make compilers happy */ |
|
|
|
@ -363,7 +359,7 @@ |
|
|
|
|
FT_PtrDist hash; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* some argument checks are delayed to FTC_Cache_Lookup */ |
|
|
|
|
/* some argument checks are delayed to `FTC_Cache_Lookup' */ |
|
|
|
|
if ( !aglyph || !scaler ) |
|
|
|
|
{ |
|
|
|
|
error = FT_THROW( Invalid_Argument ); |
|
|
|
@ -374,12 +370,11 @@ |
|
|
|
|
if ( anode ) |
|
|
|
|
*anode = NULL; |
|
|
|
|
|
|
|
|
|
/* FT_Load_Glyph(), FT_Load_Char() take FT_UInt flags */ |
|
|
|
|
/* `FT_Load_Glyph' and `FT_Load_Char' take FT_UInt flags */ |
|
|
|
|
if ( load_flags > FT_UINT_MAX ) |
|
|
|
|
{ |
|
|
|
|
FT_TRACE1(( "FTC_ImageCache_LookupScaler: higher bits in load_flags" )); |
|
|
|
|
FT_TRACE1(( "0x%x are dropped\n", (load_flags & ~((FT_ULong)FT_UINT_MAX)) )); |
|
|
|
|
} |
|
|
|
|
FT_TRACE1(( "FTC_ImageCache_LookupScaler:" |
|
|
|
|
" higher bits in load_flags 0x%x are dropped\n", |
|
|
|
|
load_flags & ~((FT_ULong)FT_UINT_MAX) )); |
|
|
|
|
|
|
|
|
|
query.attrs.scaler = scaler[0]; |
|
|
|
|
query.attrs.load_flags = (FT_UInt)load_flags; |
|
|
|
@ -477,24 +472,21 @@ |
|
|
|
|
if ( anode ) |
|
|
|
|
*anode = NULL; |
|
|
|
|
|
|
|
|
|
/* other argument checks delayed to FTC_Cache_Lookup */ |
|
|
|
|
/* other argument checks delayed to `FTC_Cache_Lookup' */ |
|
|
|
|
if ( !ansbit ) |
|
|
|
|
return FT_THROW( Invalid_Argument ); |
|
|
|
|
|
|
|
|
|
*ansbit = NULL; |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
if ( (FT_ULong)(type->flags - FT_INT_MIN) > FT_UINT_MAX ) |
|
|
|
|
{ |
|
|
|
|
FT_TRACE1(( "FTC_ImageCache_Lookup: higher bits in load_flags" )); |
|
|
|
|
FT_TRACE1(( "0x%x are dropped\n", (type->flags & ~((FT_ULong)FT_UINT_MAX)) )); |
|
|
|
|
} |
|
|
|
|
if ( (FT_ULong)( type->flags - FT_INT_MIN ) > FT_UINT_MAX ) |
|
|
|
|
FT_TRACE1(( "FTC_ImageCache_Lookup:" |
|
|
|
|
" higher bits in load_flags 0x%x are dropped\n", |
|
|
|
|
type->flags & ~((FT_ULong)FT_UINT_MAX) )); |
|
|
|
|
|
|
|
|
|
query.attrs.scaler.face_id = type->face_id; |
|
|
|
|
query.attrs.scaler.width = type->width; |
|
|
|
|
query.attrs.scaler.height = type->height; |
|
|
|
|
query.attrs.load_flags = (FT_UInt)type->flags; |
|
|
|
|
} |
|
|
|
|
query.attrs.scaler.face_id = type->face_id; |
|
|
|
|
query.attrs.scaler.width = type->width; |
|
|
|
|
query.attrs.scaler.height = type->height; |
|
|
|
|
query.attrs.load_flags = (FT_UInt)type->flags; |
|
|
|
|
|
|
|
|
|
query.attrs.scaler.pixel = 1; |
|
|
|
|
query.attrs.scaler.x_res = 0; /* make compilers happy */ |
|
|
|
@ -555,18 +547,17 @@ |
|
|
|
|
if ( anode ) |
|
|
|
|
*anode = NULL; |
|
|
|
|
|
|
|
|
|
/* other argument checks delayed to FTC_Cache_Lookup */ |
|
|
|
|
/* other argument checks delayed to `FTC_Cache_Lookup' */ |
|
|
|
|
if ( !ansbit || !scaler ) |
|
|
|
|
return FT_THROW( Invalid_Argument ); |
|
|
|
|
|
|
|
|
|
*ansbit = NULL; |
|
|
|
|
|
|
|
|
|
/* FT_Load_Glyph(), FT_Load_Char() take FT_UInt flags */ |
|
|
|
|
/* `FT_Load_Glyph' and `FT_Load_Char' take FT_UInt flags */ |
|
|
|
|
if ( load_flags > FT_UINT_MAX ) |
|
|
|
|
{ |
|
|
|
|
FT_TRACE1(( "FTC_ImageCache_LookupScaler: higher bits in load_flags" )); |
|
|
|
|
FT_TRACE1(( "0x%x are dropped\n", (load_flags & ~((FT_ULong)FT_UINT_MAX)) )); |
|
|
|
|
} |
|
|
|
|
FT_TRACE1(( "FTC_ImageCache_LookupScaler:" |
|
|
|
|
" higher bits in load_flags 0x%x are dropped\n", |
|
|
|
|
load_flags & ~((FT_ULong)FT_UINT_MAX) )); |
|
|
|
|
|
|
|
|
|
query.attrs.scaler = scaler[0]; |
|
|
|
|
query.attrs.load_flags = (FT_UInt)load_flags; |
|
|
|
|