From 7591bf11d19e6138c6da2d9935137ce255cbec3e Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Thu, 29 Dec 2016 21:39:06 +0100 Subject: [PATCH] [truetype] Variation font API stability issues. Make some functions work before a call to `TT_Set_MM_Blend'. * src/truetype/ttgxvar.c (tt_hadvance_adjust): Exit immediately if we don't blend. (TT_Get_MM_Blend, TT_Get_Var_Design): Return default values if we don't blend. --- ChangeLog | 11 +++++++++++ src/truetype/ttgxvar.c | 27 ++++++++++++++++++++++----- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index d26fa3f46..aa0fd9977 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2016-12-29 Werner Lemberg + + [truetype] Variation font API stability issues. + + Make some functions work before a call to `TT_Set_MM_Blend'. + + * src/truetype/ttgxvar.c (tt_hadvance_adjust): Exit immediately if + we don't blend. + (TT_Get_MM_Blend, TT_Get_Var_Design): Return default values if we + don't blend. + 2016-12-29 Werner Lemberg * src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis data. diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c index cdf41834c..cf4f7b17a 100644 --- a/src/truetype/ttgxvar.c +++ b/src/truetype/ttgxvar.c @@ -786,7 +786,7 @@ FT_Fixed delta; - if ( !face->blend ) + if ( !face->doblend || !face->blend ) goto Exit; if ( !face->blend->hvar_loaded ) @@ -1745,8 +1745,17 @@ nc = blend->num_axis; } - for ( i = 0; i < nc; i++ ) - coords[i] = blend->normalizedcoords[i]; + if ( face->doblend ) + { + for ( i = 0; i < nc; i++ ) + coords[i] = blend->normalizedcoords[i]; + } + else + { + for ( i = 0; i < nc; i++ ) + coords[i] = 0; + } + for ( ; i < num_coords; i++ ) coords[i] = 0; @@ -1947,8 +1956,16 @@ nc = blend->num_axis; } - for ( i = 0; i < nc; ++i ) - coords[i] = blend->normalizedcoords[i]; + if ( face->doblend ) + { + for ( i = 0; i < nc; i++ ) + coords[i] = blend->normalizedcoords[i]; + } + else + { + for ( i = 0; i < nc; i++ ) + coords[i] = 0; + } for ( ; i < num_coords; i++ ) coords[i] = 0;