diff options
Diffstat (limited to 'src/truetype/ttgxvar.c')
-rw-r--r-- | src/truetype/ttgxvar.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c index 7f2db0cbd..bbd264048 100644 --- a/src/truetype/ttgxvar.c +++ b/src/truetype/ttgxvar.c @@ -1381,15 +1381,14 @@ static FT_Error - tt_size_reset_iterator( FT_ListNode node, + ft_size_reset_iterator( FT_ListNode node, void* user ) { - TT_Size size = (TT_Size)node->data; - - FT_UNUSED( user ); + FT_Size size = (FT_Size)node->data; + FT_Service_MetricsVariations var = (FT_Service_MetricsVariations)user; - tt_size_reset( size, 1 ); + var->size_reset( size ); return FT_Err_Ok; } @@ -1462,6 +1461,9 @@ /* adjust all derived values */ { + FT_Service_MetricsVariations var = + (FT_Service_MetricsVariations)face->face_var; + FT_Face root = &face->root; /* @@ -1503,11 +1505,12 @@ face->postscript.underlineThickness / 2; root->underline_thickness = face->postscript.underlineThickness; - /* iterate over all FT_Size objects and call `tt_size_reset' */ - /* to propagate the metrics changes */ - FT_List_Iterate( &root->sizes_list, - tt_size_reset_iterator, - NULL ); + /* iterate over all FT_Size objects and call `var->size_reset' */ + /* to propagate the metrics changes */ + if ( var && var->size_reset ) + FT_List_Iterate( &root->sizes_list, + ft_size_reset_iterator, + (void*)var ); } } |