freetype-commit
[Top][All Lists]
Advanced

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

[freetype2] master 68fb478: * src/autofit/afhints.c (af_get_segment_inde


From: Werner LEMBERG
Subject: [freetype2] master 68fb478: * src/autofit/afhints.c (af_get_segment_index): Fix it.
Date: Sun, 15 Nov 2015 12:07:04 +0000

branch: master
commit 68fb4789a582561606fafbe51e7a217598bb35ec
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>

    * src/autofit/afhints.c (af_get_segment_index): Fix it.
    
    The old code was too simple, returning invalid values in most cases
    where a segment crosses the contour start.
---
 ChangeLog             |    7 +++++++
 src/autofit/afhints.c |   16 ++++++++++++++--
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a39a56a..f62d5de 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2015-11-15  Werner Lemberg  <address@hidden>
 
+       * src/autofit/afhints.c (af_get_segment_index): Fix it.
+
+       The old code was too simple, returning invalid values in most cases
+       where a segment crosses the contour start.
+
+2015-11-15  Werner Lemberg  <address@hidden>
+
        * src/bdf/bdflib.c (bdf_load_font): Fix small memory leak (#46439).
 
 2015-11-11  Werner Lemberg  <address@hidden>
diff --git a/src/autofit/afhints.c b/src/autofit/afhints.c
index 6743878..56c8220 100644
--- a/src/autofit/afhints.c
+++ b/src/autofit/afhints.c
@@ -257,11 +257,23 @@
       }
       else
       {
-        if ( point >= segment->first || point <= segment->last )
-          break;
+        AF_Point  p = segment->first;
+
+
+        for (;;)
+        {
+          if ( point == p )
+            goto Exit;
+
+          if ( p == segment->last )
+            break;
+
+          p = p->next;
+        }
       }
     }
 
+  Exit:
     if ( segment == limit )
       return -1;
 



reply via email to

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