From 2a6665a4c04913bbe088af48db4eb293d498043c Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Tue, 1 Jun 2021 15:25:31 -0400 Subject: [PATCH] [sfnt] Fix fallout from 2021-05-29 change. * src/sfnt/ttcolr.c (find_base_glyph_record, find_base_glyph_v1_record): Adjust binary search. Needs to be updated with change to unsigned. --- ChangeLog | 10 ++++++++++ src/sfnt/ttcolr.c | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2b6ee36ed..0d0e8f3bc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2021-06-02 Ben Wagner + Werner Lemberg + + [sfnt] Fix fallout from 2021-05-29 change. + + * src/sfnt/ttcolr.c (find_base_glyph_record, + find_base_glyph_v1_record): Adjust binary search. + + Needs to be updated with change to unsigned. + 2021-06-02 Werner Lemberg * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix tracing. diff --git a/src/sfnt/ttcolr.c b/src/sfnt/ttcolr.c index 632547f8f..fa58a90a3 100644 --- a/src/sfnt/ttcolr.c +++ b/src/sfnt/ttcolr.c @@ -233,10 +233,10 @@ BaseGlyphRecord* record ) { FT_UInt min = 0; - FT_UInt max = num_base_glyph - 1; + FT_UInt max = num_base_glyph; - while ( min <= max ) + while ( min < max ) { FT_UInt mid = min + ( max - min ) / 2; FT_Byte* p = base_glyph_begin + mid * BASE_GLYPH_SIZE; @@ -247,7 +247,7 @@ if ( gid < glyph_id ) min = mid + 1; else if (gid > glyph_id ) - max = mid - 1; + max = mid; else { record->gid = gid; @@ -590,16 +590,16 @@ static FT_Bool - find_base_glyph_v1_record ( FT_Byte * base_glyph_begin, - FT_UInt num_base_glyph, - FT_UInt glyph_id, - BaseGlyphV1Record *record ) + find_base_glyph_v1_record( FT_Byte * base_glyph_begin, + FT_UInt num_base_glyph, + FT_UInt glyph_id, + BaseGlyphV1Record *record ) { FT_UInt min = 0; - FT_UInt max = num_base_glyph - 1; + FT_UInt max = num_base_glyph; - while ( min <= max ) + while ( min < max ) { FT_UInt mid = min + ( max - min ) / 2; @@ -616,7 +616,7 @@ if ( gid < glyph_id ) min = mid + 1; else if (gid > glyph_id ) - max = mid - 1; + max = mid; else { record->gid = gid;