* src/sfnt/ttkern.c (tt_face_load_kern): fixing a small bug which returned

invalid (random) values for the horizontal kerning
This commit is contained in:
David Turner 2005-02-27 21:35:50 +00:00
parent a511bc8b9b
commit 7dfb84fe10
2 changed files with 12 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2005-02-27 David Turner <david@freetype.org>
* src/sfnt/ttkern.c (tt_face_load_kern): fixing a small bug which returned
invalid (random) values for the horizontal kerning
2005-02-25 David Turner <david@freetype.org>
* many, many files: several memory optimizations were implemented to

View File

@ -175,7 +175,6 @@
FT_UInt right_glyph )
{
FT_Int result = 0;
FT_Int value;
FT_UInt count, mask = 1;
FT_Byte* p = face->kern_table;
FT_Byte* p_limit = p + face->kern_table_size;
@ -190,6 +189,7 @@
FT_UInt version = FT_NEXT_USHORT(p);
FT_UInt length = FT_NEXT_USHORT(p);
FT_UInt coverage = FT_NEXT_USHORT(p);
FT_Int value = 0;
next = base + length;
@ -205,8 +205,7 @@
{
FT_UInt num_pairs = FT_NEXT_USHORT(p);
FT_ULong key0 = TT_KERN_INDEX(left_glyph,right_glyph);
FT_Int value = 0;
p += 6;
if ( face->kern_order_bits & mask ) /* binary search */
@ -226,7 +225,7 @@
if ( key == key0 )
{
value = FT_PEEK_SHORT(q);
break;
goto Found;
}
if ( key < key0 )
min = mid+1;
@ -245,7 +244,7 @@
if ( key == key0 )
{
value = FT_PEEK_SHORT(p);
break;
goto Found;
}
p += 2;
}
@ -261,6 +260,9 @@
;
}
goto NextTable;
Found:
if ( coverage & 8 ) /* overide or addition */
result = value;
else