* src/sfnt/ttpost.c (load_format_*): Streamline frame reading.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
diff --git a/src/sfnt/ttpost.c b/src/sfnt/ttpost.c
index f4e8fe5..ac9de6e 100644
--- a/src/sfnt/ttpost.c
+++ b/src/sfnt/ttpost.c
@@ -169,6 +169,7 @@
FT_UShort* glyph_indices = NULL;
FT_Byte** name_strings = NULL;
+ FT_Byte* q;
if ( (FT_ULong)num_glyphs * 2 > post_len )
@@ -182,9 +183,11 @@
FT_FRAME_ENTER( num_glyphs * 2 ) )
goto Fail;
+ q = (FT_Byte*)stream->cursor;
+
for ( n = 0; n < num_glyphs; n++ )
{
- FT_UShort idx = FT_GET_USHORT();
+ FT_UShort idx = FT_NEXT_USHORT( q );
if ( idx > num_names )
@@ -272,6 +275,7 @@
FT_UShort n;
FT_UShort* glyph_indices = NULL;
+ FT_Byte* q;
/* check the number of glyphs, including the theoretical limit */
@@ -287,9 +291,11 @@
FT_FRAME_ENTER( num_glyphs ) )
goto Fail;
+ q = (FT_Byte*)stream->cursor;
+
for ( n = 0; n < num_glyphs; n++ )
{
- FT_Int idx = n + FT_GET_CHAR();
+ FT_Int idx = n + FT_NEXT_CHAR( q );
if ( idx < 0 || idx > 257 )