ref: 8183eeb18d91513cfc8b70eba9c4a818748792dc
parent: 97718f3c91864994025048af756ded07218a1aea
author: Behdad Esfahbod <[email protected]>
date: Sat Aug 6 19:12:55 EDT 2016
[truetype] Fix GX variation handling of composites. * src/truetype/ttgload.c (load_truetype_glyph) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Check `ARGS_ARE_XY_VALUES' flag.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-07-16 Behdad Esfahbod <[email protected]>
+
+ [truetype] Fix GX variation handling of composites.
+
+ * src/truetype/ttgload.c (load_truetype_glyph)
+ [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Check `ARGS_ARE_XY_VALUES' flag.
+
2016-08-05 Alexei Podtelezhnikov <[email protected]>
[smooth] Minor refactoring.
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -1807,11 +1807,11 @@
for ( i = 0; i < limit; i++, subglyph++ )
{
- /* XXX: overflow check for subglyph->{arg1,arg2}. */
- /* Deltas must be within signed 16-bit, */
- /* but the restriction of summed deltas is not clear */
- subglyph->arg1 = (FT_Int16)points[i].x;
- subglyph->arg2 = (FT_Int16)points[i].y;
+ if ( subglyph->flags & ARGS_ARE_XY_VALUES )
+ {
+ subglyph->arg1 = (FT_Int16)points[i].x;
+ subglyph->arg2 = (FT_Int16)points[i].y;
+ }
}
loader->pp1.x = points[i + 0].x;