From 029191349104a5bf9c0614facf0bbbeb248d5468 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Sat, 7 Jan 2017 07:45:28 +0100 Subject: [PATCH] [truetype] More GX code shuffling. We need this later on for MVAR also. * src/truetype/ttgxvar.c (tt_done_blend): Split off handling of item variation store into... (ft_var_done_item_variation_store): ...new function. --- ChangeLog | 16 +++++++++++--- src/truetype/ttgxvar.c | 47 ++++++++++++++++++++++++++++-------------- 2 files changed, 44 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index e8ec2c526..a02eae61d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2017-01-06 Werner Lemberg + + [truetype] More GX code shuffling. + + We need this later on for MVAR also. + + * src/truetype/ttgxvar.c (tt_done_blend): Split off handling of item + variation store into... + (ft_var_done_item_variation_store): ...new function. + 2017-01-06 Werner Lemberg [truetype] More generalization of GX stuff. @@ -36,10 +46,10 @@ [truetype] Code shuffling. - * src/truetype/ttgxvar.c (): Split off loading of item variation - store and delta set index mapping into... + * src/truetype/ttgxvar.c (ft_var_load_hvar): Split off loading of + item variation store and delta set index mapping into... (ft_var_load_item_variation_store, - ft_var_load_delta_set_index_mapping): ... new functions. + ft_var_load_delta_set_index_mapping): ...new functions. 2017-01-06 Werner Lemberg diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c index 6840784a9..40176ca9f 100644 --- a/src/truetype/ttgxvar.c +++ b/src/truetype/ttgxvar.c @@ -2990,6 +2990,35 @@ } + static void + ft_var_done_item_variation_store( TT_Face face, + GX_ItemVarStore itemStore ) + { + FT_Memory memory = FT_FACE_MEMORY( face ); + FT_UInt i; + + + if ( itemStore->varData ) + { + for ( i = 0; i < itemStore->dataCount; i++ ) + { + FT_FREE( itemStore->varData[i].regionIndices ); + FT_FREE( itemStore->varData[i].deltaSet ); + } + + FT_FREE( itemStore->varData ); + } + + if ( itemStore->varRegionList ) + { + for ( i = 0; i < itemStore->regionCount; i++ ) + FT_FREE( itemStore->varRegionList[i].axisList ); + + FT_FREE( itemStore->varRegionList ); + } + } + + /*************************************************************************/ /* */ /* */ @@ -3025,22 +3054,8 @@ if ( blend->hvar_table ) { - if ( blend->hvar_table->itemStore.varData ) - { - for ( i = 0; i < blend->hvar_table->itemStore.dataCount; i++ ) - { - FT_FREE( blend->hvar_table->itemStore.varData[i].regionIndices ); - FT_FREE( blend->hvar_table->itemStore.varData[i].deltaSet ); - } - FT_FREE( blend->hvar_table->itemStore.varData ); - } - - if ( blend->hvar_table->itemStore.varRegionList ) - { - for ( i = 0; i < blend->hvar_table->itemStore.regionCount; i++ ) - FT_FREE( blend->hvar_table->itemStore.varRegionList[i].axisList ); - FT_FREE( blend->hvar_table->itemStore.varRegionList ); - } + ft_var_done_item_variation_store( face, + &blend->hvar_table->itemStore ); FT_FREE( blend->hvar_table->widthMap.innerIndex ); FT_FREE( blend->hvar_table->widthMap.outerIndex );