Commit a3a3c5d711268da41c6862b50984605b60feb2aa

David Turner 2007-01-05T13:15:29

small optimization in the CMAP 4 validator

diff --git a/ChangeLog b/ChangeLog
index 112aa4e..c99c823 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2007-01-04  David Turner  <david@freetype.org>
 
+	* src/sfnt/ttcmap.c: slight optimization in the CMAP 4 validator
+
 	* src/cff/cffload.c, src/cff/cffload.h, src/cff/cffgload.c,
 	src/cff/cfftypes.h: formatting + do not load the CFF index
 	offsets into memory, since this wastes a *lot* of heap memory
diff --git a/src/sfnt/ttcmap.c b/src/sfnt/ttcmap.c
index 7795105..424716b 100644
--- a/src/sfnt/ttcmap.c
+++ b/src/sfnt/ttcmap.c
@@ -862,18 +862,19 @@
       FT_UInt  start, end, offset, n;
       FT_UInt  last_start = 0, last_end = 0;
       FT_Int   delta;
+      FT_Byte*  p_start   = starts;
+      FT_Byte*  p_end     = ends;
+      FT_Byte*  p_delta   = deltas;
+      FT_Byte*  p_offset  = offsets;
 
 
       for ( n = 0; n < num_segs; n++ )
       {
-        p = starts + n * 2;
-        start = TT_PEEK_USHORT( p );
-        p = ends + n * 2;
-        end = TT_PEEK_USHORT( p );
-        p = deltas + n * 2;
-        delta = TT_PEEK_SHORT( p );
-        p = offsets + n * 2;
-        offset = TT_PEEK_USHORT( p );
+        p      = p_offset;
+        start  = TT_NEXT_USHORT( p_start );
+        end    = TT_NEXT_USHORT( p_end );
+        delta  = TT_NEXT_SHORT( p_delta );
+        offset = TT_NEXT_USHORT( p_offset );
 
         if ( start > end )
           FT_INVALID_DATA;