Fix allocation and indexing in NewGlyphClasses array. (#130661, Masatake
Mon Jul 26 19:11:46 2004 Owen Taylor <otaylor@redhat.com> * pango/opentype/ftxgdef.c: Fix allocation and indexing in NewGlyphClasses array. (#130661, Masatake YAMATO)
This commit is contained in:
parent
5d42695e5e
commit
2ea2a55bdf
|
@ -773,7 +773,7 @@
|
||||||
glyph_index = glyphID - gcrr[index].End - 1;
|
glyph_index = glyphID - gcrr[index].End - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
byte = ngc[array_index][glyph_index / 4 + 1];
|
byte = ngc[array_index][glyph_index / 4];
|
||||||
bits = byte >> ( 16 - ( glyph_index % 4 + 1 ) * 4 );
|
bits = byte >> ( 16 - ( glyph_index % 4 + 1 ) * 4 );
|
||||||
|
|
||||||
return bits & 0x000F;
|
return bits & 0x000F;
|
||||||
|
@ -1010,7 +1010,7 @@
|
||||||
|
|
||||||
if ( gcrr[0].Start )
|
if ( gcrr[0].Start )
|
||||||
{
|
{
|
||||||
if ( ALLOC_ARRAY( ngc[0], gcrr[0].Start / 4 + 1, FT_UShort ) )
|
if ( ALLOC_ARRAY( ngc[0], ( gcrr[0].Start + 3 ) / 4, FT_UShort ) )
|
||||||
goto Fail1;
|
goto Fail1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1018,7 +1018,7 @@
|
||||||
{
|
{
|
||||||
if ( gcrr[n].Start - gcrr[n - 1].End > 1 )
|
if ( gcrr[n].Start - gcrr[n - 1].End > 1 )
|
||||||
if ( ALLOC_ARRAY( ngc[n],
|
if ( ALLOC_ARRAY( ngc[n],
|
||||||
( gcrr[n].Start - gcrr[n - 1].End - 1 ) / 4 + 1,
|
( gcrr[n].Start - gcrr[n - 1].End + 2 ) / 4,
|
||||||
FT_UShort ) )
|
FT_UShort ) )
|
||||||
goto Fail1;
|
goto Fail1;
|
||||||
}
|
}
|
||||||
|
@ -1026,7 +1026,7 @@
|
||||||
if ( gcrr[count - 1].End != num_glyphs - 1 )
|
if ( gcrr[count - 1].End != num_glyphs - 1 )
|
||||||
{
|
{
|
||||||
if ( ALLOC_ARRAY( ngc[count],
|
if ( ALLOC_ARRAY( ngc[count],
|
||||||
( num_glyphs - gcrr[count - 1].End - 1 ) / 4 + 1,
|
( num_glyphs - gcrr[count - 1].End + 2 ) / 4,
|
||||||
FT_UShort ) )
|
FT_UShort ) )
|
||||||
goto Fail1;
|
goto Fail1;
|
||||||
}
|
}
|
||||||
|
@ -1141,7 +1141,7 @@
|
||||||
glyph_index = glyphID - gcrr[index].End - 1;
|
glyph_index = glyphID - gcrr[index].End - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
byte = ngc[array_index][glyph_index / 4 + 1];
|
byte = ngc[array_index][glyph_index / 4];
|
||||||
bits = byte >> ( 16 - ( glyph_index % 4 + 1 ) * 4 );
|
bits = byte >> ( 16 - ( glyph_index % 4 + 1 ) * 4 );
|
||||||
class = bits & 0x000F;
|
class = bits & 0x000F;
|
||||||
|
|
||||||
|
@ -1152,8 +1152,8 @@
|
||||||
bits = new_class << ( 16 - ( glyph_index % 4 + 1 ) * 4 );
|
bits = new_class << ( 16 - ( glyph_index % 4 + 1 ) * 4 );
|
||||||
mask = ~( 0x000F << ( 16 - ( glyph_index % 4 + 1 ) * 4 ) );
|
mask = ~( 0x000F << ( 16 - ( glyph_index % 4 + 1 ) * 4 ) );
|
||||||
|
|
||||||
ngc[array_index][glyph_index / 4 + 1] &= mask;
|
ngc[array_index][glyph_index / 4] &= mask;
|
||||||
ngc[array_index][glyph_index / 4 + 1] |= bits;
|
ngc[array_index][glyph_index / 4] |= bits;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TT_Err_Ok;
|
return TT_Err_Ok;
|
||||||
|
|
Loading…
Reference in New Issue