freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2] master 351fc4b 2/2: [pfr] Fix binary search (#47514).


From: Werner LEMBERG
Subject: [freetype2] master 351fc4b 2/2: [pfr] Fix binary search (#47514).
Date: Tue, 29 Mar 2016 07:15:06 +0000

branch: master
commit 351fc4b4a4e6ac8036df7248ab6c24129ca13269
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>

    [pfr] Fix binary search (#47514).
    
    * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Handle border
    conditions correctly.
---
 ChangeLog         |    7 +++++++
 src/pfr/pfrsbit.c |   11 +++++------
 src/sfnt/ttcmap.c |    2 +-
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index e7e92c1..2473546 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2016-03-29  Werner Lemberg  <address@hidden>
 
+       [pfr] Fix binary search (#47514).
+
+       * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Handle border
+       conditions correctly.
+
+2016-03-29  Werner Lemberg  <address@hidden>
+
        [pfr] Minor.
 
        * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Replace `left',
diff --git a/src/pfr/pfrsbit.c b/src/pfr/pfrsbit.c
index abdbb20..68da033 100644
--- a/src/pfr/pfrsbit.c
+++ b/src/pfr/pfrsbit.c
@@ -364,13 +364,12 @@
       else
         code = PFR_NEXT_BYTE( buff );
 
-      if ( code == char_code )
-        goto Found_It;
-
-      if ( code < char_code )
-        min = mid;
-      else
+      if ( char_code < code )
         max = mid;
+      else if ( char_code > code )
+        min = mid + 1;
+      else
+        goto Found_It;
     }
 
   Fail:
diff --git a/src/sfnt/ttcmap.c b/src/sfnt/ttcmap.c
index 8f9e3c1..01255a8 100644
--- a/src/sfnt/ttcmap.c
+++ b/src/sfnt/ttcmap.c
@@ -3104,7 +3104,7 @@
 
       if ( char_code < start )
         max = mid;
-      else if ( char_code > start+cnt )
+      else if ( char_code > start + cnt )
         min = mid + 1;
       else
         return TRUE;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]