summaryrefslogtreecommitdiff
path: root/src/cff/cffload.c
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2023-05-06 18:57:42 +0200
committerWerner Lemberg <wl@gnu.org>2023-05-07 14:59:21 +0200
commitc041411917261ba05213c97469f0b530475ae08e (patch)
tree302f44597efd0eafb8d0f8e4d794883a1f5f59e3 /src/cff/cffload.c
parent8fe50c2adca74a4eca1501c831251283b4cc6d9b (diff)
downloadfreetype2-c041411917261ba05213c97469f0b530475ae08e.tar.gz
* src/cff/*: Clean up interface.
Ensure that all driver functions use the signature of the service or driver. This avoids pointer mismatches, which are technically undefined behaviour. Recent compilers are more picky in catching them as part of Control Flow Integrity tests.
Diffstat (limited to 'src/cff/cffload.c')
-rw-r--r--src/cff/cffload.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/cff/cffload.c b/src/cff/cffload.c
index a090111e3..f96002ec0 100644
--- a/src/cff/cffload.c
+++ b/src/cff/cffload.c
@@ -1589,16 +1589,17 @@
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
FT_LOCAL_DEF( FT_Error )
- cff_get_var_blend( CFF_Face face,
+ cff_get_var_blend( FT_Face face, /* CFF_Face */
FT_UInt *num_coords,
FT_Fixed* *coords,
FT_Fixed* *normalizedcoords,
FT_MM_Var* *mm_var )
{
- FT_Service_MultiMasters mm = (FT_Service_MultiMasters)face->mm;
+ CFF_Face cffface = (CFF_Face)face;
+ FT_Service_MultiMasters mm = (FT_Service_MultiMasters)cffface->mm;
- return mm->get_var_blend( FT_FACE( face ),
+ return mm->get_var_blend( face,
num_coords,
coords,
normalizedcoords,
@@ -1607,13 +1608,14 @@
FT_LOCAL_DEF( void )
- cff_done_blend( CFF_Face face )
+ cff_done_blend( FT_Face face ) /* CFF_Face */
{
- FT_Service_MultiMasters mm = (FT_Service_MultiMasters)face->mm;
+ CFF_Face cffface = (CFF_Face)face;
+ FT_Service_MultiMasters mm = (FT_Service_MultiMasters)cffface->mm;
if ( mm )
- mm->done_blend( FT_FACE( face ) );
+ mm->done_blend( face );
}
#endif /* TT_CONFIG_OPTION_GX_VAR_SUPPORT */