From fa0eb0c95fa954a3097d62c440303c403f466942 Mon Sep 17 00:00:00 2001 From: David Turner Date: Sun, 27 Feb 2005 21:35:50 +0000 Subject: [PATCH] * src/sfnt/ttkern.c (tt_face_load_kern): fixing a small bug which returned invalid (random) values for the horizontal kerning --- ChangeLog | 5 +++++ src/sfnt/ttkern.c | 12 +++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5fa7f2ea6..d62607db4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-02-27 David Turner + + * 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 * many, many files: several memory optimizations were implemented to diff --git a/src/sfnt/ttkern.c b/src/sfnt/ttkern.c index a75d56620..f59dc033c 100644 --- a/src/sfnt/ttkern.c +++ b/src/sfnt/ttkern.c @@ -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