smooth: Exclude 16-bit system in invalid pitch/height check.

This commit is contained in:
suzuki toshiya 2009-07-03 18:01:41 +09:00
parent ac079164bd
commit 6c2176b86f
2 changed files with 15 additions and 0 deletions

View File

@ -1,3 +1,12 @@
2009-07-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
smooth: Exclude 16-bit system in invalid pitch/height check.
* src/smooth/ftsmooth.c (ft_smooth_render_generic):
pitch and height are typed as FT_UInt but checked to fit
16-bit range, to avoid the overflows. On 16-bit system,
this checking inserts a conditional that never occurs.
2009-07-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
cff: Type large constants > 0x7FFF as long for 16-bit systems.

View File

@ -196,6 +196,10 @@
#endif
#if FT_UINT_MAX > 0xFFFFU
/* if pitch or height is not FT_UInt, check must be enabled */
if ( pitch > 0xFFFF || height > 0xFFFF )
{
FT_ERROR(( "ft_smooth_render_generic: glyph too large: %d x %d\n",
@ -203,6 +207,8 @@
return Smooth_Err_Raster_Overflow;
}
#endif
bitmap->pixel_mode = FT_PIXEL_MODE_GRAY;
bitmap->num_grays = 256;
bitmap->width = width;