* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous change. It's not necessary.
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
diff --git a/ChangeLog b/ChangeLog
index 45c195f..656c5ad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2003-12-31 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous
+ change. It's not necessary.
+
2003-12-29 Smith Charles <smith.charles@free.fr>
* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle `repeated
diff --git a/src/truetype/ttgload.c b/src/truetype/ttgload.c
index 8ff3e6b..78eb41a 100644
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -296,7 +296,6 @@
FT_Byte *flag, *flag_limit;
FT_Byte c, count;
- FT_Int n_xlimit;
FT_Vector *vec, *vec_limit;
FT_Pos x;
FT_Short *cont, *cont_limit;
@@ -369,36 +368,10 @@
stream->cursor += (FT_Int)n_ins;
/* reading the point tags */
-
- /*********************************************************************/
- /* */
- /* NOTE: */
- /* */
- /* Microsoft documentation says: */
- /* */
- /* BYTE flags[n] Array of flags for each coordinate in outline; */
- /* `n' is the number of flags. */
- /* (But it doesn't say where the `n' comes from.) */
- /* */
- /* Apple documentation says: */
- /* */
- /* uint8 flags[variable] Array of flags. */
- /* (Again it doesn't say where the */
- /* `variable' comes from) */
- /* */
- /* Most of the time, `n' = `variable' = n_points. But if a */
- /* `repeated flags set' is found (`c & 8' below) the number of */
- /* flags sets is smaller than n_points. So we must carefully read */
- /* the flags, avoiding to read beyond the limit of actually stored */
- /* bytes. */
-
flag = (FT_Byte*)outline->tags;
flag_limit = flag + n_points;
- /* scan and expand the flags to reach the first xCoordinate */
- n_xlimit = n_points; /* this is a safety limit for reading */
-
- for ( ; n_xlimit > 0; n_xlimit-- )
+ while ( flag < flag_limit )
{
if ( --byte_len < 0 )
goto Invalid_Outline;
@@ -413,19 +386,11 @@
if ( flag + (FT_Int)count > flag_limit )
goto Invalid_Outline;
- /* adjust n_xlimit by removing the repeated sets */
- /* from the safety limit */
- n_xlimit -= count;
-
for ( ; count > 0; count-- )
*flag++ = c;
}
}
- /* check that each point has an associated flags set */
- if ( flag != flag_limit )
- goto Invalid_Outline;
-
/* check that there is enough room to load the coordinates */
for ( flag = (FT_Byte*)outline->tags; flag < flag_limit; flag++ )
{