*/*: Remove many function pointer casts.

In C it is undefined behavior to call a function through a function pointer
of a different type.  This is now detected by the Control Flow Integrity
Sanitizer.  All known issues have already been fixed.  Prevent any
accidental re-introduction by removing function pointer casts when defining
services.  The services will call the service functions through the function
pointers on the service.  As a result the functions must have the same type
so there should be no need to cast.  Removing the casts allows compilers to
warn about assignment to an incompatible function pointer type.
This commit is contained in:
Ben Wagner 2023-06-01 19:38:36 -04:00 committed by Werner Lemberg
parent b641b607be
commit 2fb8eda5d6
10 changed files with 202 additions and 229 deletions

View File

@ -372,8 +372,9 @@
FT_DEFINE_SERVICE_PROPERTIESREC(
af_service_properties,
(FT_Properties_SetFunc)af_property_set, /* set_property */
(FT_Properties_GetFunc)af_property_get ) /* get_property */
af_property_set, /* FT_Properties_SetFunc set_property */
af_property_get /* FT_Properties_GetFunc get_property */
)
FT_DEFINE_SERVICEDESCREC1(
@ -499,10 +500,10 @@
FT_DEFINE_AUTOHINTER_INTERFACE(
af_autofitter_interface,
NULL, /* reset_face */
NULL, /* get_global_hints */
NULL, /* done_global_hints */
(FT_AutoHinter_GlyphLoadFunc)af_autofitter_load_glyph /* load_glyph */
NULL, /* FT_AutoHinter_GlobalResetFunc reset_face */
NULL, /* FT_AutoHinter_GlobalGetFunc get_global_hints */
NULL, /* FT_AutoHinter_GlobalDoneFunc done_global_hints */
af_autofitter_load_glyph /* FT_AutoHinter_GlyphLoadFunc load_glyph */
)
FT_DEFINE_MODULE(
@ -517,9 +518,9 @@
(const void*)&af_autofitter_interface,
(FT_Module_Constructor)af_autofitter_init, /* module_init */
(FT_Module_Destructor) af_autofitter_done, /* module_done */
(FT_Module_Requester) af_get_interface /* get_interface */
af_autofitter_init, /* FT_Module_Constructor module_init */
af_autofitter_done, /* FT_Module_Destructor module_done */
af_get_interface /* FT_Module_Requester get_interface */
)

View File

@ -442,8 +442,8 @@
FT_DEFINE_SERVICE_GLYPHDICTREC(
cff_service_glyph_dict,
(FT_GlyphDict_GetNameFunc) cff_get_glyph_name, /* get_name */
(FT_GlyphDict_NameIndexFunc)cff_get_name_index /* name_index */
cff_get_glyph_name, /* FT_GlyphDict_GetNameFunc get_name */
cff_get_name_index /* FT_GlyphDict_NameIndexFunc name_index */
)
@ -592,13 +592,13 @@
FT_DEFINE_SERVICE_PSINFOREC(
cff_service_ps_info,
(PS_GetFontInfoFunc) cff_ps_get_font_info, /* ps_get_font_info */
(PS_GetFontExtraFunc) cff_ps_get_font_extra, /* ps_get_font_extra */
(PS_HasGlyphNamesFunc) cff_ps_has_glyph_names, /* ps_has_glyph_names */
cff_ps_get_font_info, /* PS_GetFontInfoFunc ps_get_font_info */
cff_ps_get_font_extra, /* PS_GetFontExtraFunc ps_get_font_extra */
cff_ps_has_glyph_names, /* PS_HasGlyphNamesFunc ps_has_glyph_names */
/* unsupported with CFF fonts */
(PS_GetFontPrivateFunc)NULL, /* ps_get_font_private */
NULL, /* PS_GetFontPrivateFunc ps_get_font_private */
/* not implemented */
(PS_GetFontValueFunc) NULL /* ps_get_font_value */
NULL /* PS_GetFontValueFunc ps_get_font_value */
)
@ -640,7 +640,7 @@
FT_DEFINE_SERVICE_PSFONTNAMEREC(
cff_service_ps_name,
(FT_PsName_GetFunc)cff_get_ps_name /* get_ps_font_name */
cff_get_ps_name /* FT_PsName_GetFunc get_ps_font_name */
)
@ -688,7 +688,7 @@
FT_DEFINE_SERVICE_TTCMAPSREC(
cff_service_get_cmap_info,
(TT_CMap_Info_GetFunc)cff_get_cmap_info /* get_cmap_info */
cff_get_cmap_info /* TT_CMap_Info_GetFunc get_cmap_info */
)
@ -820,12 +820,12 @@
FT_DEFINE_SERVICE_CIDREC(
cff_service_cid_info,
(FT_CID_GetRegistryOrderingSupplementFunc)
cff_get_ros, /* get_ros */
(FT_CID_GetIsInternallyCIDKeyedFunc)
cff_get_is_cid, /* get_is_cid */
(FT_CID_GetCIDFromGlyphIndexFunc)
cff_get_cid_from_glyph_index /* get_cid_from_glyph_index */
cff_get_ros,
/* FT_CID_GetRegistryOrderingSupplementFunc get_ros */
cff_get_is_cid,
/* FT_CID_GetIsInternallyCIDKeyedFunc get_is_cid */
cff_get_cid_from_glyph_index
/* FT_CID_GetCIDFromGlyphIndexFunc get_cid_from_glyph_index */
)
@ -837,9 +837,9 @@
FT_DEFINE_SERVICE_PROPERTIESREC(
cff_service_properties,
(FT_Properties_SetFunc)ps_property_set, /* set_property */
(FT_Properties_GetFunc)ps_property_get ) /* get_property */
ps_property_set, /* FT_Properties_SetFunc set_property */
ps_property_get /* FT_Properties_GetFunc get_property */
)
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
@ -1044,45 +1044,35 @@
FT_DEFINE_SERVICE_MULTIMASTERSREC(
cff_service_multi_masters,
(FT_Get_MM_Func) NULL, /* get_mm */
(FT_Set_MM_Design_Func) NULL, /* set_mm_design */
(FT_Set_MM_Blend_Func) cff_set_mm_blend, /* set_mm_blend */
(FT_Get_MM_Blend_Func) cff_get_mm_blend, /* get_mm_blend */
(FT_Get_MM_Var_Func) cff_get_mm_var, /* get_mm_var */
(FT_Set_Var_Design_Func)cff_set_var_design, /* set_var_design */
(FT_Get_Var_Design_Func)cff_get_var_design, /* get_var_design */
(FT_Set_Named_Instance_Func)
cff_set_named_instance,
/* set_named_instance */
(FT_Get_Default_Named_Instance_Func)
cff_get_default_named_instance,
/* get_default_named_instance */
(FT_Set_MM_WeightVector_Func)
cff_set_mm_weightvector,
/* set_mm_weightvector */
(FT_Get_MM_WeightVector_Func)
cff_get_mm_weightvector,
/* get_mm_weightvector */
(FT_Construct_PS_Name_Func)
cff_construct_ps_name,
/* construct_ps_name */
(FT_Var_Load_Delta_Set_Idx_Map_Func)
cff_load_delta_set_index_mapping,
/* load_delta_set_idx_map */
(FT_Var_Load_Item_Var_Store_Func)
cff_load_item_variation_store,
/* load_item_variation_store */
(FT_Var_Get_Item_Delta_Func)
cff_get_item_delta, /* get_item_delta */
(FT_Var_Done_Item_Var_Store_Func)
cff_done_item_variation_store,
/* done_item_variation_store */
(FT_Var_Done_Delta_Set_Idx_Map_Func)
cff_done_delta_set_index_map,
/* done_delta_set_index_map */
(FT_Get_Var_Blend_Func) cff_get_var_blend, /* get_var_blend */
(FT_Done_Blend_Func) cff_done_blend /* done_blend */
NULL, /* FT_Get_MM_Func get_mm */
NULL, /* FT_Set_MM_Design_Func set_mm_design */
cff_set_mm_blend, /* FT_Set_MM_Blend_Func set_mm_blend */
cff_get_mm_blend, /* FT_Get_MM_Blend_Func get_mm_blend */
cff_get_mm_var, /* FT_Get_MM_Var_Func get_mm_var */
cff_set_var_design, /* FT_Set_Var_Design_Func set_var_design */
cff_get_var_design, /* FT_Get_Var_Design_Func get_var_design */
cff_set_named_instance,
/* FT_Set_Named_Instance_Func set_named_instance */
cff_get_default_named_instance,
/* FT_Get_Default_Named_Instance_Func get_default_named_instance */
cff_set_mm_weightvector,
/* FT_Set_MM_WeightVector_Func set_mm_weightvector */
cff_get_mm_weightvector,
/* FT_Get_MM_WeightVector_Func get_mm_weightvector */
cff_construct_ps_name,
/* FT_Construct_PS_Name_Func construct_ps_name */
cff_load_delta_set_index_mapping,
/* FT_Var_Load_Delta_Set_Idx_Map_Func load_delta_set_idx_map */
cff_load_item_variation_store,
/* FT_Var_Load_Item_Var_Store_Func load_item_variation_store */
cff_get_item_delta,
/* FT_Var_Get_Item_Delta_Func get_item_delta */
cff_done_item_variation_store,
/* FT_Var_Done_Item_Var_Store_Func done_item_variation_store */
cff_done_delta_set_index_map,
/* FT_Var_Done_Delta_Set_Idx_Map_Func done_delta_set_index_map */
cff_get_var_blend, /* FT_Get_Var_Blend_Func get_var_blend */
cff_done_blend /* FT_Done_Blend_Func done_blend */
)
@ -1120,17 +1110,17 @@
FT_DEFINE_SERVICE_METRICSVARIATIONSREC(
cff_service_metrics_variations,
(FT_HAdvance_Adjust_Func)cff_hadvance_adjust, /* hadvance_adjust */
(FT_LSB_Adjust_Func) NULL, /* lsb_adjust */
(FT_RSB_Adjust_Func) NULL, /* rsb_adjust */
cff_hadvance_adjust, /* FT_HAdvance_Adjust_Func hadvance_adjust */
NULL, /* FT_LSB_Adjust_Func lsb_adjust */
NULL, /* FT_RSB_Adjust_Func rsb_adjust */
(FT_VAdvance_Adjust_Func)NULL, /* vadvance_adjust */
(FT_TSB_Adjust_Func) NULL, /* tsb_adjust */
(FT_BSB_Adjust_Func) NULL, /* bsb_adjust */
(FT_VOrg_Adjust_Func) NULL, /* vorg_adjust */
NULL, /* FT_VAdvance_Adjust_Func vadvance_adjust */
NULL, /* FT_TSB_Adjust_Func tsb_adjust */
NULL, /* FT_BSB_Adjust_Func bsb_adjust */
NULL, /* FT_VOrg_Adjust_Func vorg_adjust */
(FT_Metrics_Adjust_Func) cff_metrics_adjust, /* metrics_adjust */
(FT_Size_Reset_Func) NULL /* size_reset */
cff_metrics_adjust, /* FT_Metrics_Adjust_Func metrics_adjust */
NULL /* FT_Size_Reset_Func size_reset */
)
#endif
@ -1143,11 +1133,11 @@
FT_DEFINE_SERVICE_CFFLOADREC(
cff_service_cff_load,
(FT_Get_Standard_Encoding_Func)cff_get_standard_encoding,
(FT_Load_Private_Dict_Func) cff_load_private_dict,
(FT_FD_Select_Get_Func) cff_fd_select_get,
(FT_Blend_Check_Vector_Func) cff_blend_check_vector,
(FT_Blend_Build_Vector_Func) cff_blend_build_vector
cff_get_standard_encoding, /* FT_Get_Standard_Encoding_Func get_standard_encoding */
cff_load_private_dict, /* FT_Load_Private_Dict_Func load_private_dict */
cff_fd_select_get, /* FT_FD_Select_Get_Func fd_select_get */
cff_blend_check_vector, /* FT_Blend_Check_Vector_Func blend_check_vector */
cff_blend_build_vector /* FT_Blend_Build_Vector_Func blend_build_vector */
)

View File

@ -95,14 +95,14 @@
static const FT_Service_PsInfoRec cid_service_ps_info =
{
(PS_GetFontInfoFunc) cid_ps_get_font_info, /* ps_get_font_info */
(PS_GetFontExtraFunc) cid_ps_get_font_extra, /* ps_get_font_extra */
cid_ps_get_font_info, /* PS_GetFontInfoFunc ps_get_font_info */
cid_ps_get_font_extra, /* PS_GetFontExtraFunc ps_get_font_extra */
/* unsupported with CID fonts */
(PS_HasGlyphNamesFunc) NULL, /* ps_has_glyph_names */
NULL, /* PS_HasGlyphNamesFunc ps_has_glyph_names */
/* unsupported */
(PS_GetFontPrivateFunc)NULL, /* ps_get_font_private */
NULL, /* PS_GetFontPrivateFunc ps_get_font_private */
/* not implemented */
(PS_GetFontValueFunc) NULL /* ps_get_font_value */
NULL /* PS_GetFontValueFunc ps_get_font_value */
};
@ -182,12 +182,12 @@
static const FT_Service_CIDRec cid_service_cid_info =
{
(FT_CID_GetRegistryOrderingSupplementFunc)
cid_get_ros, /* get_ros */
(FT_CID_GetIsInternallyCIDKeyedFunc)
cid_get_is_cid, /* get_is_cid */
(FT_CID_GetCIDFromGlyphIndexFunc)
cid_get_cid_from_glyph_index /* get_cid_from_glyph_index */
cid_get_ros,
/* FT_CID_GetRegistryOrderingSupplementFunc get_ros */
cid_get_is_cid,
/* FT_CID_GetIsInternallyCIDKeyedFunc get_is_cid */
cid_get_cid_from_glyph_index
/* FT_CID_GetCIDFromGlyphIndexFunc get_cid_from_glyph_index */
};
@ -199,9 +199,9 @@
FT_DEFINE_SERVICE_PROPERTIESREC(
cid_service_properties,
(FT_Properties_SetFunc)ps_property_set, /* set_property */
(FT_Properties_GetFunc)ps_property_get ) /* get_property */
ps_property_set, /* FT_Properties_SetFunc set_property */
ps_property_get /* FT_Properties_GetFunc get_property */
)
/*
* SERVICE LIST

View File

@ -543,13 +543,13 @@
FT_DEFINE_SERVICE_PSCMAPSREC(
pscmaps_interface,
(PS_Unicode_ValueFunc) ps_unicode_value, /* unicode_value */
(PS_Unicodes_InitFunc) ps_unicodes_init, /* unicodes_init */
(PS_Unicodes_CharIndexFunc)ps_unicodes_char_index, /* unicodes_char_index */
(PS_Unicodes_CharNextFunc) ps_unicodes_char_next, /* unicodes_char_next */
ps_unicode_value, /* PS_Unicode_ValueFunc unicode_value */
ps_unicodes_init, /* PS_Unicodes_InitFunc unicodes_init */
ps_unicodes_char_index, /* PS_Unicodes_CharIndexFunc unicodes_char_index */
ps_unicodes_char_next, /* PS_Unicodes_CharNextFunc unicodes_char_next */
(PS_Macintosh_NameFunc) ps_get_macintosh_name, /* macintosh_name */
(PS_Adobe_Std_StringsFunc) ps_get_standard_strings, /* adobe_std_strings */
ps_get_macintosh_name, /* PS_Macintosh_NameFunc macintosh_name */
ps_get_standard_strings, /* PS_Adobe_Std_StringsFunc adobe_std_strings */
t1_standard_encoding, /* adobe_std_encoding */
t1_expert_encoding /* adobe_expert_encoding */
@ -560,13 +560,13 @@
FT_DEFINE_SERVICE_PSCMAPSREC(
pscmaps_interface,
NULL, /* unicode_value */
NULL, /* unicodes_init */
NULL, /* unicodes_char_index */
NULL, /* unicodes_char_next */
NULL, /* PS_Unicode_ValueFunc unicode_value */
NULL, /* PS_Unicodes_InitFunc unicodes_init */
NULL, /* PS_Unicodes_CharIndexFunc unicodes_char_index */
NULL, /* PS_Unicodes_CharNextFunc unicodes_char_next */
(PS_Macintosh_NameFunc) ps_get_macintosh_name, /* macintosh_name */
(PS_Adobe_Std_StringsFunc) ps_get_standard_strings, /* adobe_std_strings */
ps_get_macintosh_name, /* PS_Macintosh_NameFunc macintosh_name */
ps_get_standard_strings, /* PS_Adobe_Std_StringsFunc adobe_std_strings */
t1_standard_encoding, /* adobe_std_encoding */
t1_expert_encoding /* adobe_expert_encoding */
@ -612,9 +612,9 @@
PUT_PS_NAMES_SERVICE(
(void*)&pscmaps_interface ), /* module specific interface */
(FT_Module_Constructor)NULL, /* module_init */
(FT_Module_Destructor) NULL, /* module_done */
(FT_Module_Requester) PUT_PS_NAMES_SERVICE( psnames_get_service ) /* get_interface */
NULL, /* FT_Module_Constructor module_init */
NULL, /* FT_Module_Destructor module_done */
PUT_PS_NAMES_SERVICE( psnames_get_service ) /* FT_Module_Requester get_interface */
)

View File

@ -3283,11 +3283,11 @@
FT_GLYPH_FORMAT_OUTLINE,
(FT_Raster_New_Func) ft_black_new, /* raster_new */
(FT_Raster_Reset_Func) ft_black_reset, /* raster_reset */
(FT_Raster_Set_Mode_Func)ft_black_set_mode, /* raster_set_mode */
(FT_Raster_Render_Func) ft_black_render, /* raster_render */
(FT_Raster_Done_Func) ft_black_done /* raster_done */
ft_black_new, /* FT_Raster_New_Func raster_new */
ft_black_reset, /* FT_Raster_Reset_Func raster_reset */
ft_black_set_mode, /* FT_Raster_Set_Mode_Func raster_set_mode */
ft_black_render, /* FT_Raster_Render_Func raster_render */
ft_black_done /* FT_Raster_Done_Func raster_done */
)

View File

@ -191,18 +191,18 @@
NULL, /* module specific interface */
(FT_Module_Constructor)ft_raster1_init, /* module_init */
(FT_Module_Destructor) NULL, /* module_done */
(FT_Module_Requester) NULL, /* get_interface */
ft_raster1_init, /* FT_Module_Constructor module_init */
NULL, /* FT_Module_Destructor module_done */
NULL, /* FT_Module_Requester get_interface */
FT_GLYPH_FORMAT_OUTLINE,
(FT_Renderer_RenderFunc) ft_raster1_render, /* render_glyph */
(FT_Renderer_TransformFunc)ft_raster1_transform, /* transform_glyph */
(FT_Renderer_GetCBoxFunc) ft_raster1_get_cbox, /* get_glyph_cbox */
(FT_Renderer_SetModeFunc) ft_raster1_set_mode, /* set_mode */
ft_raster1_render, /* FT_Renderer_RenderFunc render_glyph */
ft_raster1_transform, /* FT_Renderer_TransformFunc transform_glyph */
ft_raster1_get_cbox, /* FT_Renderer_GetCBoxFunc get_glyph_cbox */
ft_raster1_set_mode, /* FT_Renderer_SetModeFunc set_mode */
(FT_Raster_Funcs*)&ft_standard_raster /* raster_class */
&ft_standard_raster /* FT_Raster_Funcs* raster_class */
)

View File

@ -172,9 +172,9 @@
FT_DEFINE_SERVICE_SFNT_TABLEREC(
sfnt_service_sfnt_table,
(FT_SFNT_TableLoadFunc)sfnt_load_table, /* load_table */
(FT_SFNT_TableGetFunc) get_sfnt_table, /* get_table */
(FT_SFNT_TableInfoFunc)sfnt_table_info /* table_info */
sfnt_load_table, /* FT_SFNT_TableLoadFunc load_table */
get_sfnt_table, /* FT_SFNT_TableGetFunc get_table */
sfnt_table_info /* FT_SFNT_TableInfoFunc table_info */
)
@ -240,8 +240,8 @@
FT_DEFINE_SERVICE_GLYPHDICTREC(
sfnt_service_glyph_dict,
(FT_GlyphDict_GetNameFunc) sfnt_get_glyph_name, /* get_name */
(FT_GlyphDict_NameIndexFunc)sfnt_get_name_index /* name_index */
sfnt_get_glyph_name, /* FT_GlyphDict_GetNameFunc get_name */
sfnt_get_name_index /* FT_GlyphDict_NameIndexFunc name_index */
)
#endif /* TT_CONFIG_OPTION_POSTSCRIPT_NAMES */
@ -1113,7 +1113,7 @@
FT_DEFINE_SERVICE_PSFONTNAMEREC(
sfnt_service_ps_name,
(FT_PsName_GetFunc)sfnt_get_ps_name /* get_ps_font_name */
sfnt_get_ps_name /* FT_PsName_GetFunc get_ps_font_name */
)
@ -1123,7 +1123,7 @@
FT_DEFINE_SERVICE_TTCMAPSREC(
tt_service_get_cmap_info,
(TT_CMap_Info_GetFunc)tt_get_cmap_info /* get_cmap_info */
tt_get_cmap_info /* TT_CMap_Info_GetFunc get_cmap_info */
)
@ -1168,8 +1168,8 @@
FT_DEFINE_SERVICE_BDFRec(
sfnt_service_bdf,
(FT_BDF_GetCharsetIdFunc)sfnt_get_charset_id, /* get_charset_id */
(FT_BDF_GetPropertyFunc) tt_face_find_bdf_prop /* get_property */
sfnt_get_charset_id, /* FT_BDF_GetCharsetIdFunc get_charset_id */
tt_face_find_bdf_prop /* FT_BDF_GetPropertyFunc get_property */
)
@ -1360,9 +1360,9 @@
(const void*)&sfnt_interface, /* module specific interface */
(FT_Module_Constructor)NULL, /* module_init */
(FT_Module_Destructor) NULL, /* module_done */
(FT_Module_Requester) sfnt_get_interface /* get_interface */
NULL, /* FT_Module_Constructor module_init */
NULL, /* FT_Module_Destructor module_done */
sfnt_get_interface /* FT_Module_Requester get_interface */
)

View File

@ -153,7 +153,7 @@
static const SVG_Interface svg_interface =
{
(Preset_Bitmap_Func)ft_svg_preset_slot
ft_svg_preset_slot /* Preset_Bitmap_Func preset_slot */
};
@ -231,8 +231,8 @@
FT_DEFINE_SERVICE_PROPERTIESREC(
ft_svg_service_properties,
(FT_Properties_SetFunc)ft_svg_property_set, /* set_property */
(FT_Properties_GetFunc)ft_svg_property_get /* get_property */
ft_svg_property_set, /* FT_Properties_SetFunc set_property */
ft_svg_property_get /* FT_Properties_GetFunc get_property */
)
@ -338,17 +338,17 @@
(const void*)PUT_SVG_MODULE( &svg_interface ), /* module specific interface */
(FT_Module_Constructor)PUT_SVG_MODULE( ft_svg_init ), /* module_init */
(FT_Module_Destructor)PUT_SVG_MODULE( ft_svg_done ), /* module_done */
PUT_SVG_MODULE( ft_svg_get_interface ), /* get_interface */
PUT_SVG_MODULE( ft_svg_init ), /* FT_Module_Constructor module_init */
PUT_SVG_MODULE( ft_svg_done ), /* FT_Module_Destructor module_done */
PUT_SVG_MODULE( ft_svg_get_interface ), /* FT_Module_Requester get_interface */
SVG_GLYPH_FORMAT,
(FT_Renderer_RenderFunc) PUT_SVG_MODULE( ft_svg_render ), /* render_glyph */
(FT_Renderer_TransformFunc)PUT_SVG_MODULE( ft_svg_transform ), /* transform_glyph */
NULL, /* get_glyph_cbox */
NULL, /* set_mode */
NULL /* raster_class */
PUT_SVG_MODULE( ft_svg_render ), /* FT_Renderer_RenderFunc render_glyph */
PUT_SVG_MODULE( ft_svg_transform ), /* FT_Renderer_TransformFunc transform_glyph */
NULL, /* FT_Renderer_GetCBoxFunc get_glyph_cbox */
NULL, /* FT_Renderer_SetModeFunc set_mode */
NULL /* FT_Raster_Funcs* raster_class */
)

View File

@ -154,8 +154,8 @@
FT_DEFINE_SERVICE_PROPERTIESREC(
tt_service_properties,
(FT_Properties_SetFunc)tt_property_set, /* set_property */
(FT_Properties_GetFunc)tt_property_get /* get_property */
tt_property_set, /* FT_Properties_SetFunc set_property */
tt_property_get /* FT_Properties_GetFunc get_property */
)
@ -517,57 +517,47 @@
FT_DEFINE_SERVICE_MULTIMASTERSREC(
tt_service_gx_multi_masters,
(FT_Get_MM_Func) NULL, /* get_mm */
(FT_Set_MM_Design_Func) NULL, /* set_mm_design */
(FT_Set_MM_Blend_Func) TT_Set_MM_Blend, /* set_mm_blend */
(FT_Get_MM_Blend_Func) TT_Get_MM_Blend, /* get_mm_blend */
(FT_Get_MM_Var_Func) TT_Get_MM_Var, /* get_mm_var */
(FT_Set_Var_Design_Func)TT_Set_Var_Design, /* set_var_design */
(FT_Get_Var_Design_Func)TT_Get_Var_Design, /* get_var_design */
(FT_Set_Named_Instance_Func)
TT_Set_Named_Instance, /* set_named_instance */
(FT_Get_Default_Named_Instance_Func)
TT_Get_Default_Named_Instance,
/* get_default_named_instance */
(FT_Set_MM_WeightVector_Func)
NULL, /* set_mm_weightvector */
(FT_Get_MM_WeightVector_Func)
NULL, /* get_mm_weightvector */
NULL, /* FT_Get_MM_Func get_mm */
NULL, /* FT_Set_MM_Design_Func set_mm_design */
TT_Set_MM_Blend, /* FT_Set_MM_Blend_Func set_mm_blend */
TT_Get_MM_Blend, /* FT_Get_MM_Blend_Func get_mm_blend */
TT_Get_MM_Var, /* FT_Get_MM_Var_Func get_mm_var */
TT_Set_Var_Design, /* FT_Set_Var_Design_Func set_var_design */
TT_Get_Var_Design, /* FT_Get_Var_Design_Func get_var_design */
TT_Set_Named_Instance, /* FT_Set_Named_Instance_Func set_named_instance */
TT_Get_Default_Named_Instance,
/* FT_Get_Default_Named_Instance_Func get_default_named_instance */
NULL, /* FT_Set_MM_WeightVector_Func set_mm_weightvector */
NULL, /* FT_Get_MM_WeightVector_Func get_mm_weightvector */
(FT_Construct_PS_Name_Func)
tt_construct_ps_name, /* construct_ps_name */
(FT_Var_Load_Delta_Set_Idx_Map_Func)
tt_var_load_delta_set_index_mapping,
/* load_delta_set_idx_map */
(FT_Var_Load_Item_Var_Store_Func)
tt_var_load_item_variation_store,
/* load_item_variation_store */
(FT_Var_Get_Item_Delta_Func)
tt_var_get_item_delta, /* get_item_delta */
(FT_Var_Done_Item_Var_Store_Func)
tt_var_done_item_variation_store,
/* done_item_variation_store */
(FT_Var_Done_Delta_Set_Idx_Map_Func)
tt_var_done_delta_set_index_map,
/* done_delta_set_index_map */
(FT_Get_Var_Blend_Func) tt_get_var_blend, /* get_var_blend */
(FT_Done_Blend_Func) tt_done_blend /* done_blend */
tt_construct_ps_name, /* FT_Construct_PS_Name_Func construct_ps_name */
tt_var_load_delta_set_index_mapping,
/* FT_Var_Load_Delta_Set_Idx_Map_Func load_delta_set_idx_map */
tt_var_load_item_variation_store,
/* FT_Var_Load_Item_Var_Store_Func load_item_variation_store */
tt_var_get_item_delta, /* FT_Var_Get_Item_Delta_Func get_item_delta */
tt_var_done_item_variation_store,
/* FT_Var_Done_Item_Var_Store_Func done_item_variation_store */
tt_var_done_delta_set_index_map,
/* FT_Var_Done_Delta_Set_Idx_Map_Func done_delta_set_index_map */
tt_get_var_blend, /* FT_Get_Var_Blend_Func get_var_blend */
tt_done_blend /* FT_Done_Blend_Func done_blend */
)
FT_DEFINE_SERVICE_METRICSVARIATIONSREC(
tt_service_metrics_variations,
(FT_HAdvance_Adjust_Func)tt_hadvance_adjust, /* hadvance_adjust */
(FT_LSB_Adjust_Func) NULL, /* lsb_adjust */
(FT_RSB_Adjust_Func) NULL, /* rsb_adjust */
tt_hadvance_adjust, /* FT_HAdvance_Adjust_Func hadvance_adjust */
NULL, /* FT_LSB_Adjust_Func lsb_adjust */
NULL, /* FT_RSB_Adjust_Func rsb_adjust */
(FT_VAdvance_Adjust_Func)tt_vadvance_adjust, /* vadvance_adjust */
(FT_TSB_Adjust_Func) NULL, /* tsb_adjust */
(FT_BSB_Adjust_Func) NULL, /* bsb_adjust */
(FT_VOrg_Adjust_Func) NULL, /* vorg_adjust */
tt_vadvance_adjust, /* FT_VAdvance_Adjust_Func vadvance_adjust */
NULL, /* FT_TSB_Adjust_Func tsb_adjust */
NULL, /* FT_BSB_Adjust_Func bsb_adjust */
NULL, /* FT_VOrg_Adjust_Func vorg_adjust */
(FT_Metrics_Adjust_Func) tt_apply_mvar, /* metrics_adjust */
(FT_Size_Reset_Func) tt_size_reset_height /* size_reset */
tt_apply_mvar, /* FT_Metrics_Adjust_Func metrics_adjust */
tt_size_reset_height /* FT_Size_Reset_Func size_reset */
)
#endif /* TT_CONFIG_OPTION_GX_VAR_SUPPORT */

View File

@ -94,8 +94,8 @@
static const FT_Service_GlyphDictRec t1_service_glyph_dict =
{
(FT_GlyphDict_GetNameFunc) t1_get_glyph_name, /* get_name */
(FT_GlyphDict_NameIndexFunc)t1_get_name_index /* name_index */
t1_get_glyph_name, /* FT_GlyphDict_GetNameFunc get_name */
t1_get_name_index /* FT_GlyphDict_NameIndexFunc name_index */
};
@ -128,36 +128,28 @@
#ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT
static const FT_Service_MultiMastersRec t1_service_multi_masters =
{
(FT_Get_MM_Func) T1_Get_Multi_Master, /* get_mm */
(FT_Set_MM_Design_Func) T1_Set_MM_Design, /* set_mm_design */
(FT_Set_MM_Blend_Func) T1_Set_MM_Blend, /* set_mm_blend */
(FT_Get_MM_Blend_Func) T1_Get_MM_Blend, /* get_mm_blend */
(FT_Get_MM_Var_Func) T1_Get_MM_Var, /* get_mm_var */
(FT_Set_Var_Design_Func)T1_Set_Var_Design, /* set_var_design */
(FT_Get_Var_Design_Func)T1_Get_Var_Design, /* get_var_design */
(FT_Set_Named_Instance_Func)
T1_Reset_MM_Blend, /* set_named_instance */
(FT_Get_Default_Named_Instance_Func)
NULL, /* get_default_named_instance */
(FT_Set_MM_WeightVector_Func)
T1_Set_MM_WeightVector, /* set_mm_weightvector */
(FT_Get_MM_WeightVector_Func)
T1_Get_MM_WeightVector, /* get_mm_weightvector */
T1_Get_Multi_Master, /* FT_Get_MM_Func get_mm */
T1_Set_MM_Design, /* FT_Set_MM_Design_Func set_mm_design */
T1_Set_MM_Blend, /* FT_Set_MM_Blend_Func set_mm_blend */
T1_Get_MM_Blend, /* FT_Get_MM_Blend_Func get_mm_blend */
T1_Get_MM_Var, /* FT_Get_MM_Var_Func get_mm_var */
T1_Set_Var_Design, /* FT_Set_Var_Design_Func set_var_design */
T1_Get_Var_Design, /* FT_Get_Var_Design_Func get_var_design */
T1_Reset_MM_Blend, /* FT_Set_Named_Instance_Func set_named_instance */
NULL, /* FT_Get_Default_Named_Instance_Func get_default_named_instance */
T1_Set_MM_WeightVector,
/* FT_Set_MM_WeightVector_Func set_mm_weightvector */
T1_Get_MM_WeightVector,
/* FT_Get_MM_WeightVector_Func get_mm_weightvector */
(FT_Construct_PS_Name_Func)
NULL, /* construct_ps_name */
(FT_Var_Load_Delta_Set_Idx_Map_Func)
NULL, /* load_delta_set_idx_map */
(FT_Var_Load_Item_Var_Store_Func)
NULL, /* load_item_variation_store */
(FT_Var_Get_Item_Delta_Func)
NULL, /* get_item_delta */
(FT_Var_Done_Item_Var_Store_Func)
NULL, /* done_item_variation_store */
(FT_Var_Done_Delta_Set_Idx_Map_Func)
NULL, /* done_delta_set_index_map */
(FT_Get_Var_Blend_Func) NULL, /* get_var_blend */
(FT_Done_Blend_Func) T1_Done_Blend /* done_blend */
NULL, /* FT_Construct_PS_Name_Func construct_ps_name */
NULL, /* FT_Var_Load_Delta_Set_Idx_Map_Func load_delta_set_idx_map */
NULL, /* FT_Var_Load_Item_Var_Store_Func load_item_variation_store */
NULL, /* FT_Var_Get_Item_Delta_Func get_item_delta */
NULL, /* FT_Var_Done_Item_Var_Store_Func done_item_variation_store */
NULL, /* FT_Var_Done_Delta_Set_Idx_Map_Func done_delta_set_index_map */
NULL, /* FT_Get_Var_Blend_Func get_var_blend */
T1_Done_Blend /* FT_Done_Blend_Func done_blend */
};
#endif
@ -645,11 +637,11 @@
static const FT_Service_PsInfoRec t1_service_ps_info =
{
(PS_GetFontInfoFunc) t1_ps_get_font_info, /* ps_get_font_info */
(PS_GetFontExtraFunc) t1_ps_get_font_extra, /* ps_get_font_extra */
(PS_HasGlyphNamesFunc) t1_ps_has_glyph_names, /* ps_has_glyph_names */
(PS_GetFontPrivateFunc)t1_ps_get_font_private, /* ps_get_font_private */
(PS_GetFontValueFunc) t1_ps_get_font_value, /* ps_get_font_value */
t1_ps_get_font_info, /* PS_GetFontInfoFunc ps_get_font_info */
t1_ps_get_font_extra, /* PS_GetFontExtraFunc ps_get_font_extra */
t1_ps_has_glyph_names, /* PS_HasGlyphNamesFunc ps_has_glyph_names */
t1_ps_get_font_private, /* PS_GetFontPrivateFunc ps_get_font_private */
t1_ps_get_font_value, /* PS_GetFontValueFunc ps_get_font_value */
};
@ -669,9 +661,9 @@
FT_DEFINE_SERVICE_PROPERTIESREC(
t1_service_properties,
(FT_Properties_SetFunc)ps_property_set, /* set_property */
(FT_Properties_GetFunc)ps_property_get ) /* get_property */
ps_property_set, /* FT_Properties_SetFunc set_property */
ps_property_get /* FT_Properties_GetFunc get_property */
)
/*
* SERVICE LIST