From 7b8a770aac3206c096c9a7a506df5a3660cdf274 Mon Sep 17 00:00:00 2001 From: Alexei Podtelezhnikov Date: Sun, 31 Aug 2025 07:28:32 -0400 Subject: [PATCH 1/7] [base] Make FT_Module_Class always const. All uses of FT_Module_Class are decorated with const now. Therefore, it make sense to declare it as such to begin with. * include/freetype/ftmodapi.h (FT_Module_Class): Decorate with const. * include/freetype/internal/ftobjs.h (FT_Module): Updated. * src/*: Update all other users. --- include/freetype/ftmodapi.h | 6 +-- include/freetype/internal/ftobjs.h | 60 +++++++++++++++--------------- src/base/ftinit.c | 14 +++---- src/base/ftobjs.c | 10 ++--- src/gxvalid/gxvmod.c | 2 +- src/gxvalid/gxvmod.h | 2 +- src/otvalid/otvmod.c | 2 +- src/otvalid/otvmod.h | 2 +- 8 files changed, 49 insertions(+), 49 deletions(-) diff --git a/include/freetype/ftmodapi.h b/include/freetype/ftmodapi.h index 0ee715898..75a803eb0 100644 --- a/include/freetype/ftmodapi.h +++ b/include/freetype/ftmodapi.h @@ -232,7 +232,7 @@ FT_BEGIN_HEADER * get_interface :: * The interface requesting function. */ - typedef struct FT_Module_Class_ + typedef const struct FT_Module_Class_ { FT_ULong module_flags; FT_Long module_size; @@ -273,8 +273,8 @@ FT_BEGIN_HEADER * if the module requires a version of FreeType that is too great. */ FT_EXPORT( FT_Error ) - FT_Add_Module( FT_Library library, - const FT_Module_Class* clazz ); + FT_Add_Module( FT_Library library, + FT_Module_Class* clazz ); /************************************************************************** diff --git a/include/freetype/internal/ftobjs.h b/include/freetype/internal/ftobjs.h index 30d5247f3..71034a738 100644 --- a/include/freetype/internal/ftobjs.h +++ b/include/freetype/internal/ftobjs.h @@ -520,9 +520,9 @@ FT_BEGIN_HEADER */ typedef struct FT_ModuleRec_ { - const FT_Module_Class* clazz; - FT_Library library; - FT_Memory memory; + FT_Module_Class* clazz; + FT_Library library; + FT_Memory memory; } FT_ModuleRec; @@ -1190,7 +1190,7 @@ FT_BEGIN_HEADER */ #define FT_DECLARE_MODULE( class_ ) \ FT_CALLBACK_TABLE \ - const FT_Module_Class class_; + FT_Module_Class class_; #define FT_DEFINE_ROOT_MODULE( \ flags_, \ @@ -1217,32 +1217,32 @@ FT_BEGIN_HEADER get_interface_, \ }, -#define FT_DEFINE_MODULE( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Module_Class class_ = \ - { \ - flags_, \ - size_, \ - \ - name_, \ - version_, \ - requires_, \ - \ - interface_, \ - \ - init_, \ - done_, \ - get_interface_, \ +#define FT_DEFINE_MODULE( \ + class_, \ + flags_, \ + size_, \ + name_, \ + version_, \ + requires_, \ + interface_, \ + init_, \ + done_, \ + get_interface_) \ + FT_CALLBACK_TABLE_DEF \ + FT_Module_Class class_ = \ + { \ + flags_, \ + size_, \ + \ + name_, \ + version_, \ + requires_, \ + \ + interface_, \ + \ + init_, \ + done_, \ + get_interface_, \ }; diff --git a/src/base/ftinit.c b/src/base/ftinit.c index 9a6c00e13..78295f1ca 100644 --- a/src/base/ftinit.c +++ b/src/base/ftinit.c @@ -56,18 +56,18 @@ #undef FT_USE_MODULE #ifdef __cplusplus -#define FT_USE_MODULE( type, x ) extern "C" const type x; +#define FT_USE_MODULE( type, x ) extern "C" type x; #else -#define FT_USE_MODULE( type, x ) extern const type x; +#define FT_USE_MODULE( type, x ) extern type x; #endif #include FT_CONFIG_MODULES_H #undef FT_USE_MODULE -#define FT_USE_MODULE( type, x ) (const FT_Module_Class*)&(x), +#define FT_USE_MODULE( type, x ) (FT_Module_Class*)&(x), static - const FT_Module_Class* const ft_default_modules[] = + FT_Module_Class* const ft_default_modules[] = { #include FT_CONFIG_MODULES_H 0 @@ -80,13 +80,13 @@ FT_Add_Default_Modules( FT_Library library ) { FT_Error error; - const FT_Module_Class* const* cur; + FT_Module_Class* const* cur; /* GCC 4.6 warns the type difference: - * FT_Module_Class** != const FT_Module_Class* const* + * FT_Module_Class** != FT_Module_Class* const* */ - cur = (const FT_Module_Class* const*)ft_default_modules; + cur = (FT_Module_Class* const*)ft_default_modules; /* test for valid `library' delayed to FT_Add_Module() */ while ( *cur ) diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c index 2f5204135..44f5d273c 100644 --- a/src/base/ftobjs.c +++ b/src/base/ftobjs.c @@ -5030,9 +5030,9 @@ static void Destroy_Module( FT_Module module ) { - const FT_Module_Class* clazz = module->clazz; - FT_Library library = module->library; - FT_Memory memory = module->memory; + FT_Module_Class* clazz = module->clazz; + FT_Library library = module->library; + FT_Memory memory = module->memory; if ( library && library->auto_hinter == module ) @@ -5058,8 +5058,8 @@ /* documentation is in ftmodapi.h */ FT_EXPORT_DEF( FT_Error ) - FT_Add_Module( FT_Library library, - const FT_Module_Class* clazz ) + FT_Add_Module( FT_Library library, + FT_Module_Class* clazz ) { FT_Error error; FT_Memory memory; diff --git a/src/gxvalid/gxvmod.c b/src/gxvalid/gxvmod.c index ce1e441eb..29bd82079 100644 --- a/src/gxvalid/gxvmod.c +++ b/src/gxvalid/gxvmod.c @@ -269,7 +269,7 @@ FT_CALLBACK_TABLE_DEF - const FT_Module_Class gxv_module_class = + FT_Module_Class gxv_module_class = { 0, sizeof ( FT_ModuleRec ), diff --git a/src/gxvalid/gxvmod.h b/src/gxvalid/gxvmod.h index 6def5c547..8f5d6281d 100644 --- a/src/gxvalid/gxvmod.h +++ b/src/gxvalid/gxvmod.h @@ -35,7 +35,7 @@ FT_BEGIN_HEADER - FT_EXPORT_VAR( const FT_Module_Class ) gxv_module_class; + FT_EXPORT_VAR( FT_Module_Class ) gxv_module_class; FT_END_HEADER diff --git a/src/otvalid/otvmod.c b/src/otvalid/otvmod.c index 74e50c787..c518246a5 100644 --- a/src/otvalid/otvmod.c +++ b/src/otvalid/otvmod.c @@ -262,7 +262,7 @@ FT_CALLBACK_TABLE_DEF - const FT_Module_Class otv_module_class = + FT_Module_Class otv_module_class = { 0, sizeof ( FT_ModuleRec ), diff --git a/src/otvalid/otvmod.h b/src/otvalid/otvmod.h index 245c78020..7d4afa149 100644 --- a/src/otvalid/otvmod.h +++ b/src/otvalid/otvmod.h @@ -27,7 +27,7 @@ FT_BEGIN_HEADER - FT_EXPORT_VAR( const FT_Module_Class ) otv_module_class; + FT_EXPORT_VAR( FT_Module_Class ) otv_module_class; FT_END_HEADER From 46c6bc8472f3fa7158620ae43b38ab53b0dd95b2 Mon Sep 17 00:00:00 2001 From: Alexei Podtelezhnikov Date: Sun, 31 Aug 2025 07:31:13 -0400 Subject: [PATCH 2/7] [base] Make FT_Renderer_Class always const. * include/freetype/ftrender.h (FT_Renderer_Class): Make const. * include/freetype/internal/ftobjs.h: Updated. --- include/freetype/ftrender.h | 2 +- include/freetype/internal/ftobjs.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/freetype/ftrender.h b/include/freetype/ftrender.h index dc5018a1b..4e420f9db 100644 --- a/include/freetype/ftrender.h +++ b/include/freetype/ftrender.h @@ -147,7 +147,7 @@ FT_BEGIN_HEADER * For @FT_GLYPH_FORMAT_OUTLINE renderers only. This is a pointer to * its raster's class. */ - typedef struct FT_Renderer_Class_ + typedef const struct FT_Renderer_Class_ { FT_Module_Class root; diff --git a/include/freetype/internal/ftobjs.h b/include/freetype/internal/ftobjs.h index 71034a738..6d7eff6c9 100644 --- a/include/freetype/internal/ftobjs.h +++ b/include/freetype/internal/ftobjs.h @@ -1119,8 +1119,8 @@ FT_BEGIN_HEADER * The struct will be allocated in the global scope (or the scope where * the macro is used). */ -#define FT_DECLARE_RENDERER( class_ ) \ - FT_EXPORT_VAR( const FT_Renderer_Class ) class_; +#define FT_DECLARE_RENDERER( class_ ) \ + FT_EXPORT_VAR( FT_Renderer_Class ) class_; #define FT_DEFINE_RENDERER( \ class_, \ @@ -1140,7 +1140,7 @@ FT_BEGIN_HEADER set_mode_, \ raster_class_ ) \ FT_CALLBACK_TABLE_DEF \ - const FT_Renderer_Class class_ = \ + FT_Renderer_Class class_ = \ { \ FT_DEFINE_ROOT_MODULE( flags_, \ size_, \ From d25553220ee9d44bd693b0ac75006cc4f39cacce Mon Sep 17 00:00:00 2001 From: Alexei Podtelezhnikov Date: Sun, 31 Aug 2025 07:32:28 -0400 Subject: [PATCH 3/7] [base] Make FT_Driver_Class always const. * include/freetype/internal/ftdrv.h (FT_Driver_Class): Make const. * src/*: Update all users. --- include/freetype/internal/ftdrv.h | 6 +++--- src/bdf/bdfdrivr.c | 2 +- src/bdf/bdfdrivr.h | 2 +- src/cid/cidriver.c | 2 +- src/cid/cidriver.h | 2 +- src/pcf/pcfdrivr.c | 2 +- src/pcf/pcfdrivr.h | 2 +- src/pfr/pfrdrivr.c | 2 +- src/pfr/pfrdrivr.h | 2 +- src/type1/t1driver.c | 2 +- src/type1/t1driver.h | 2 +- src/type42/t42drivr.c | 2 +- src/type42/t42drivr.h | 2 +- src/winfonts/winfnt.c | 2 +- src/winfonts/winfnt.h | 2 +- 15 files changed, 17 insertions(+), 17 deletions(-) diff --git a/include/freetype/internal/ftdrv.h b/include/freetype/internal/ftdrv.h index 5609b3ef1..ca6134d22 100644 --- a/include/freetype/internal/ftdrv.h +++ b/include/freetype/internal/ftdrv.h @@ -162,7 +162,7 @@ FT_BEGIN_HEADER * Most function pointers, with the exception of `load_glyph`, can be set * to 0 to indicate a default behaviour. */ - typedef struct FT_Driver_ClassRec_ + typedef const struct FT_Driver_ClassRec_ { FT_Module_Class root; @@ -216,7 +216,7 @@ FT_BEGIN_HEADER */ #define FT_DECLARE_DRIVER( class_ ) \ FT_CALLBACK_TABLE \ - const FT_Driver_ClassRec class_; + FT_Driver_ClassRec class_; #define FT_DEFINE_DRIVER( \ class_, \ @@ -245,7 +245,7 @@ FT_BEGIN_HEADER request_size_, \ select_size_ ) \ FT_CALLBACK_TABLE_DEF \ - const FT_Driver_ClassRec class_ = \ + FT_Driver_ClassRec class_ = \ { \ FT_DEFINE_ROOT_MODULE( flags_, \ size_, \ diff --git a/src/bdf/bdfdrivr.c b/src/bdf/bdfdrivr.c index f57bb0007..a18dc7acd 100644 --- a/src/bdf/bdfdrivr.c +++ b/src/bdf/bdfdrivr.c @@ -985,7 +985,7 @@ THE SOFTWARE. FT_CALLBACK_TABLE_DEF - const FT_Driver_ClassRec bdf_driver_class = + FT_Driver_ClassRec bdf_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/bdf/bdfdrivr.h b/src/bdf/bdfdrivr.h index 54aaa3353..58bcaec3c 100644 --- a/src/bdf/bdfdrivr.h +++ b/src/bdf/bdfdrivr.h @@ -60,7 +60,7 @@ FT_BEGIN_HEADER } BDF_FaceRec, *BDF_Face; - FT_EXPORT_VAR( const FT_Driver_ClassRec ) bdf_driver_class; + FT_EXPORT_VAR( FT_Driver_ClassRec ) bdf_driver_class; FT_END_HEADER diff --git a/src/cid/cidriver.c b/src/cid/cidriver.c index 4be8a5c00..6da979b6f 100644 --- a/src/cid/cidriver.c +++ b/src/cid/cidriver.c @@ -230,7 +230,7 @@ FT_CALLBACK_TABLE_DEF - const FT_Driver_ClassRec t1cid_driver_class = + FT_Driver_ClassRec t1cid_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/cid/cidriver.h b/src/cid/cidriver.h index 7ddce431c..c5fecfbcf 100644 --- a/src/cid/cidriver.h +++ b/src/cid/cidriver.h @@ -26,7 +26,7 @@ FT_BEGIN_HEADER FT_CALLBACK_TABLE - const FT_Driver_ClassRec t1cid_driver_class; + FT_Driver_ClassRec t1cid_driver_class; FT_END_HEADER diff --git a/src/pcf/pcfdrivr.c b/src/pcf/pcfdrivr.c index ecd684951..0a1a12834 100644 --- a/src/pcf/pcfdrivr.c +++ b/src/pcf/pcfdrivr.c @@ -793,7 +793,7 @@ THE SOFTWARE. FT_CALLBACK_TABLE_DEF - const FT_Driver_ClassRec pcf_driver_class = + FT_Driver_ClassRec pcf_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/pcf/pcfdrivr.h b/src/pcf/pcfdrivr.h index d46539374..9f044f3d5 100644 --- a/src/pcf/pcfdrivr.h +++ b/src/pcf/pcfdrivr.h @@ -33,7 +33,7 @@ THE SOFTWARE. FT_BEGIN_HEADER - FT_EXPORT_VAR( const FT_Driver_ClassRec ) pcf_driver_class; + FT_EXPORT_VAR( FT_Driver_ClassRec ) pcf_driver_class; FT_END_HEADER diff --git a/src/pfr/pfrdrivr.c b/src/pfr/pfrdrivr.c index ffd822273..dc7e90558 100644 --- a/src/pfr/pfrdrivr.c +++ b/src/pfr/pfrdrivr.c @@ -168,7 +168,7 @@ FT_CALLBACK_TABLE_DEF - const FT_Driver_ClassRec pfr_driver_class = + FT_Driver_ClassRec pfr_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/pfr/pfrdrivr.h b/src/pfr/pfrdrivr.h index 58954a9af..a07f6451b 100644 --- a/src/pfr/pfrdrivr.h +++ b/src/pfr/pfrdrivr.h @@ -25,7 +25,7 @@ FT_BEGIN_HEADER - FT_EXPORT_VAR( const FT_Driver_ClassRec ) pfr_driver_class; + FT_EXPORT_VAR( FT_Driver_ClassRec ) pfr_driver_class; FT_END_HEADER diff --git a/src/type1/t1driver.c b/src/type1/t1driver.c index 8ed01914a..b3ac4be75 100644 --- a/src/type1/t1driver.c +++ b/src/type1/t1driver.c @@ -757,7 +757,7 @@ FT_CALLBACK_TABLE_DEF - const FT_Driver_ClassRec t1_driver_class = + FT_Driver_ClassRec t1_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/type1/t1driver.h b/src/type1/t1driver.h index 5ff52b55b..14899c1d8 100644 --- a/src/type1/t1driver.h +++ b/src/type1/t1driver.h @@ -25,7 +25,7 @@ FT_BEGIN_HEADER - FT_EXPORT_VAR( const FT_Driver_ClassRec ) t1_driver_class; + FT_EXPORT_VAR( FT_Driver_ClassRec ) t1_driver_class; FT_END_HEADER diff --git a/src/type42/t42drivr.c b/src/type42/t42drivr.c index 25f507f15..fe85a362e 100644 --- a/src/type42/t42drivr.c +++ b/src/type42/t42drivr.c @@ -199,7 +199,7 @@ } - const FT_Driver_ClassRec t42_driver_class = + FT_Driver_ClassRec t42_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/type42/t42drivr.h b/src/type42/t42drivr.h index 5b3852b86..a49fcb3a9 100644 --- a/src/type42/t42drivr.h +++ b/src/type42/t42drivr.h @@ -25,7 +25,7 @@ FT_BEGIN_HEADER - FT_EXPORT_VAR( const FT_Driver_ClassRec ) t42_driver_class; + FT_EXPORT_VAR( FT_Driver_ClassRec ) t42_driver_class; FT_END_HEADER diff --git a/src/winfonts/winfnt.c b/src/winfonts/winfnt.c index daa39bea1..43057877a 100644 --- a/src/winfonts/winfnt.c +++ b/src/winfonts/winfnt.c @@ -1176,7 +1176,7 @@ FT_CALLBACK_TABLE_DEF - const FT_Driver_ClassRec winfnt_driver_class = + FT_Driver_ClassRec winfnt_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/winfonts/winfnt.h b/src/winfonts/winfnt.h index 78137496f..578d1b5cb 100644 --- a/src/winfonts/winfnt.h +++ b/src/winfonts/winfnt.h @@ -152,7 +152,7 @@ FT_BEGIN_HEADER } FNT_FaceRec, *FNT_Face; - FT_EXPORT_VAR( const FT_Driver_ClassRec ) winfnt_driver_class; + FT_EXPORT_VAR( FT_Driver_ClassRec ) winfnt_driver_class; FT_END_HEADER From 1b6845d9b800c43740bae1913847a83051e16d82 Mon Sep 17 00:00:00 2001 From: Alexei Podtelezhnikov Date: Sun, 31 Aug 2025 17:53:19 -0400 Subject: [PATCH 4/7] [base] s/FT_Driver_ClassRec/FT_Driver_Class/. This is done for consistency with FT_Module_Class and FT_Renderer_Class. All of these classes are constant and used similarly. The 'Rec' suffix suggests that these classes are modifiable, when they are not. The old alias is deprecated. * include/freetype/internal/ftdrv.h: Do it. * builds/*, include/*, src/*: Update all users. --- builds/amiga/include/config/ftmodule.h | 18 ++++----- builds/meson/parse_modules_cfg.py | 2 +- include/freetype/config/ftmodule.h | 18 ++++----- include/freetype/internal/ftdrv.h | 14 +++---- include/freetype/internal/ftobjs.h | 8 ++-- src/base/ftobjs.c | 52 +++++++++++++------------- src/bdf/bdfdrivr.c | 2 +- src/bdf/bdfdrivr.h | 2 +- src/bdf/module.mk | 2 +- src/cff/module.mk | 2 +- src/cid/cidriver.c | 2 +- src/cid/cidriver.h | 2 +- src/cid/module.mk | 2 +- src/pcf/module.mk | 2 +- src/pcf/pcfdrivr.c | 2 +- src/pcf/pcfdrivr.h | 2 +- src/pfr/module.mk | 2 +- src/pfr/pfrdrivr.c | 2 +- src/pfr/pfrdrivr.h | 2 +- src/truetype/module.mk | 2 +- src/truetype/ttobjs.h | 2 +- src/type1/module.mk | 2 +- src/type1/t1driver.c | 2 +- src/type1/t1driver.h | 2 +- src/type42/module.mk | 2 +- src/type42/t42drivr.c | 2 +- src/type42/t42drivr.h | 2 +- src/type42/t42objs.c | 12 +++--- src/type42/t42objs.h | 4 +- src/winfonts/module.mk | 2 +- src/winfonts/winfnt.c | 2 +- src/winfonts/winfnt.h | 2 +- 32 files changed, 88 insertions(+), 88 deletions(-) diff --git a/builds/amiga/include/config/ftmodule.h b/builds/amiga/include/config/ftmodule.h index a7be0a426..8a7dab3d1 100644 --- a/builds/amiga/include/config/ftmodule.h +++ b/builds/amiga/include/config/ftmodule.h @@ -84,35 +84,35 @@ FT_USE_MODULE( FT_Module_Class, autofit_module_class ) #endif #ifdef FT_USE_TT -FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class ) +FT_USE_MODULE( FT_Driver_Class, tt_driver_class ) #endif #ifdef FT_USE_T1 -FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class ) +FT_USE_MODULE( FT_Driver_Class, t1_driver_class ) #endif #ifdef FT_USE_CFF -FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class ) +FT_USE_MODULE( FT_Driver_Class, cff_driver_class ) #endif #ifdef FT_USE_T1CID -FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class ) +FT_USE_MODULE( FT_Driver_Class, t1cid_driver_class ) #endif #ifdef FT_USE_PFR -FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class ) +FT_USE_MODULE( FT_Driver_Class, pfr_driver_class ) #endif #ifdef FT_USE_T42 -FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class ) +FT_USE_MODULE( FT_Driver_Class, t42_driver_class ) #endif #ifdef FT_USE_WINFNT -FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class ) +FT_USE_MODULE( FT_Driver_Class, winfnt_driver_class ) #endif #ifdef FT_USE_PCF -FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class ) +FT_USE_MODULE( FT_Driver_Class, pcf_driver_class ) #endif #ifdef FT_USE_PSAUX @@ -144,7 +144,7 @@ FT_USE_MODULE( FT_Module_Class, otv_module_class ) #endif #ifdef FT_USE_BDF -FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class ) +FT_USE_MODULE( FT_Driver_Class, bdf_driver_class ) #endif #ifdef FT_USE_GXV diff --git a/builds/meson/parse_modules_cfg.py b/builds/meson/parse_modules_cfg.py index f56a5db7f..79a5e1de3 100644 --- a/builds/meson/parse_modules_cfg.py +++ b/builds/meson/parse_modules_cfg.py @@ -75,7 +75,7 @@ def generate_ftmodule(lists): "winfonts": "winfnt", }.get(driver, driver) result += ( - "FT_USE_MODULE( FT_Driver_ClassRec, %s_driver_class )\n" % name + "FT_USE_MODULE( FT_Driver_Class, %s_driver_class )\n" % name ) for module in lists["HINTING_MODULES"]: diff --git a/include/freetype/config/ftmodule.h b/include/freetype/config/ftmodule.h index b315baba8..6a068cfe9 100644 --- a/include/freetype/config/ftmodule.h +++ b/include/freetype/config/ftmodule.h @@ -11,15 +11,15 @@ */ FT_USE_MODULE( FT_Module_Class, autofit_module_class ) -FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class ) -FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class ) +FT_USE_MODULE( FT_Driver_Class, tt_driver_class ) +FT_USE_MODULE( FT_Driver_Class, t1_driver_class ) +FT_USE_MODULE( FT_Driver_Class, cff_driver_class ) +FT_USE_MODULE( FT_Driver_Class, t1cid_driver_class ) +FT_USE_MODULE( FT_Driver_Class, pfr_driver_class ) +FT_USE_MODULE( FT_Driver_Class, t42_driver_class ) +FT_USE_MODULE( FT_Driver_Class, winfnt_driver_class ) +FT_USE_MODULE( FT_Driver_Class, pcf_driver_class ) +FT_USE_MODULE( FT_Driver_Class, bdf_driver_class ) FT_USE_MODULE( FT_Module_Class, psaux_module_class ) FT_USE_MODULE( FT_Module_Class, psnames_module_class ) FT_USE_MODULE( FT_Module_Class, pshinter_module_class ) diff --git a/include/freetype/internal/ftdrv.h b/include/freetype/internal/ftdrv.h index ca6134d22..1ca8d45ee 100644 --- a/include/freetype/internal/ftdrv.h +++ b/include/freetype/internal/ftdrv.h @@ -90,7 +90,7 @@ FT_BEGIN_HEADER /************************************************************************** * * @struct: - * FT_Driver_ClassRec + * FT_Driver_Class * * @description: * The font driver class. This structure mostly contains pointers to @@ -162,7 +162,7 @@ FT_BEGIN_HEADER * Most function pointers, with the exception of `load_glyph`, can be set * to 0 to indicate a default behaviour. */ - typedef const struct FT_Driver_ClassRec_ + typedef const struct FT_Driver_Class_ { FT_Module_Class root; @@ -189,7 +189,7 @@ FT_BEGIN_HEADER FT_Size_RequestFunc request_size; FT_Size_SelectFunc select_size; - } FT_Driver_ClassRec, *FT_Driver_Class; + } FT_Driver_Class, FT_Driver_ClassRec; /************************************************************************** @@ -198,14 +198,14 @@ FT_BEGIN_HEADER * FT_DECLARE_DRIVER * * @description: - * Used to create a forward declaration of an FT_Driver_ClassRec struct + * Used to create a forward declaration of an FT_Driver_Class struct * instance. * * @macro: * FT_DEFINE_DRIVER * * @description: - * Used to initialize an instance of FT_Driver_ClassRec struct. + * Used to initialize an instance of FT_Driver_Class struct. * * `ftinit.c` (ft_create_default_module_classes) already contains a * mechanism to call these functions for the default modules described in @@ -216,7 +216,7 @@ FT_BEGIN_HEADER */ #define FT_DECLARE_DRIVER( class_ ) \ FT_CALLBACK_TABLE \ - FT_Driver_ClassRec class_; + FT_Driver_Class class_; #define FT_DEFINE_DRIVER( \ class_, \ @@ -245,7 +245,7 @@ FT_BEGIN_HEADER request_size_, \ select_size_ ) \ FT_CALLBACK_TABLE_DEF \ - FT_Driver_ClassRec class_ = \ + FT_Driver_Class class_ = \ { \ FT_DEFINE_ROOT_MODULE( flags_, \ size_, \ diff --git a/include/freetype/internal/ftobjs.h b/include/freetype/internal/ftobjs.h index 6d7eff6c9..dbf1acce5 100644 --- a/include/freetype/internal/ftobjs.h +++ b/include/freetype/internal/ftobjs.h @@ -815,10 +815,10 @@ FT_BEGIN_HEADER */ typedef struct FT_DriverRec_ { - FT_ModuleRec root; - FT_Driver_Class clazz; - FT_ListRec faces_list; - FT_GlyphLoader glyph_loader; + FT_ModuleRec root; + FT_Driver_Class* clazz; + FT_ListRec faces_list; + FT_GlyphLoader glyph_loader; } FT_DriverRec; diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c index 44f5d273c..4f41ad078 100644 --- a/src/base/ftobjs.c +++ b/src/base/ftobjs.c @@ -311,7 +311,7 @@ ft_glyphslot_init( FT_GlyphSlot slot ) { FT_Driver driver = slot->face->driver; - FT_Driver_Class clazz = driver->clazz; + FT_Driver_Class* clazz = driver->clazz; FT_Memory memory = driver->root.memory; FT_Error error = FT_Err_Ok; FT_Slot_Internal internal = NULL; @@ -624,9 +624,9 @@ static void ft_glyphslot_done( FT_GlyphSlot slot ) { - FT_Driver driver = slot->face->driver; - FT_Driver_Class clazz = driver->clazz; - FT_Memory memory = driver->root.memory; + FT_Driver driver = slot->face->driver; + FT_Driver_Class* clazz = driver->clazz; + FT_Memory memory = driver->root.memory; #ifdef FT_CONFIG_OPTION_SVG if ( slot->face->face_flags & FT_FACE_FLAG_SVG ) @@ -674,11 +674,11 @@ FT_New_GlyphSlot( FT_Face face, FT_GlyphSlot *aslot ) { - FT_Error error; - FT_Driver driver; - FT_Driver_Class clazz; - FT_Memory memory; - FT_GlyphSlot slot = NULL; + FT_Error error; + FT_Driver driver; + FT_Driver_Class* clazz; + FT_Memory memory; + FT_GlyphSlot slot = NULL; if ( !face ) @@ -1299,9 +1299,9 @@ void* face_, void* driver_ ) { - FT_Face face = (FT_Face)face_; - FT_Driver driver = (FT_Driver)driver_; - FT_Driver_Class clazz = driver->clazz; + FT_Face face = (FT_Face)face_; + FT_Driver driver = (FT_Driver)driver_; + FT_Driver_Class* clazz = driver->clazz; /* discard auto-hinting data */ @@ -1495,7 +1495,7 @@ FT_Face *aface ) { FT_Memory memory; - FT_Driver_Class clazz; + FT_Driver_Class* clazz; FT_Face face = NULL; FT_Face_Internal internal = NULL; @@ -2870,7 +2870,7 @@ FT_Error error; FT_Driver driver; - FT_Driver_Class clazz; + FT_Driver_Class* clazz; /* test for valid `parameters' delayed to `FT_Stream_New' */ @@ -2965,13 +2965,13 @@ FT_New_Size( FT_Face face, FT_Size *asize ) { - FT_Error error; - FT_Memory memory; - FT_Driver driver; - FT_Driver_Class clazz; + FT_Error error; + FT_Memory memory; + FT_Driver driver; + FT_Driver_Class* clazz; - FT_Size size = NULL; - FT_ListNode node = NULL; + FT_Size size = NULL; + FT_ListNode node = NULL; FT_Size_Internal internal = NULL; @@ -3373,8 +3373,8 @@ FT_Select_Size( FT_Face face, FT_Int strike_index ) { - FT_Error error = FT_Err_Ok; - FT_Driver_Class clazz; + FT_Error error = FT_Err_Ok; + FT_Driver_Class* clazz; if ( !face || !FT_HAS_FIXED_SIZES( face ) ) @@ -3431,9 +3431,9 @@ FT_Request_Size( FT_Face face, FT_Size_Request req ) { - FT_Error error; - FT_Driver_Class clazz; - FT_ULong strike_index; + FT_Error error; + FT_Driver_Class* clazz; + FT_ULong strike_index; if ( !face ) @@ -5135,7 +5135,7 @@ FT_Driver driver = FT_DRIVER( module ); - driver->clazz = (FT_Driver_Class)module->clazz; + driver->clazz = (FT_Driver_Class*)module->clazz; } if ( clazz->module_init ) diff --git a/src/bdf/bdfdrivr.c b/src/bdf/bdfdrivr.c index a18dc7acd..8bb2a41bc 100644 --- a/src/bdf/bdfdrivr.c +++ b/src/bdf/bdfdrivr.c @@ -985,7 +985,7 @@ THE SOFTWARE. FT_CALLBACK_TABLE_DEF - FT_Driver_ClassRec bdf_driver_class = + FT_Driver_Class bdf_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/bdf/bdfdrivr.h b/src/bdf/bdfdrivr.h index 58bcaec3c..59091c614 100644 --- a/src/bdf/bdfdrivr.h +++ b/src/bdf/bdfdrivr.h @@ -60,7 +60,7 @@ FT_BEGIN_HEADER } BDF_FaceRec, *BDF_Face; - FT_EXPORT_VAR( FT_Driver_ClassRec ) bdf_driver_class; + FT_EXPORT_VAR( FT_Driver_Class ) bdf_driver_class; FT_END_HEADER diff --git a/src/bdf/module.mk b/src/bdf/module.mk index fe06ae8e0..23b3321b1 100644 --- a/src/bdf/module.mk +++ b/src/bdf/module.mk @@ -27,7 +27,7 @@ FTMODULE_H_COMMANDS += BDF_DRIVER define BDF_DRIVER -$(OPEN_DRIVER) FT_Driver_ClassRec, bdf_driver_class $(CLOSE_DRIVER) +$(OPEN_DRIVER) FT_Driver_Class, bdf_driver_class $(CLOSE_DRIVER) $(ECHO_DRIVER)bdf $(ECHO_DRIVER_DESC)bdf bitmap fonts$(ECHO_DRIVER_DONE) endef diff --git a/src/cff/module.mk b/src/cff/module.mk index 2c89cc62b..885172de1 100644 --- a/src/cff/module.mk +++ b/src/cff/module.mk @@ -16,7 +16,7 @@ FTMODULE_H_COMMANDS += CFF_DRIVER define CFF_DRIVER -$(OPEN_DRIVER) FT_Driver_ClassRec, cff_driver_class $(CLOSE_DRIVER) +$(OPEN_DRIVER) FT_Driver_Class, cff_driver_class $(CLOSE_DRIVER) $(ECHO_DRIVER)cff $(ECHO_DRIVER_DESC)OpenType fonts with extension *.otf$(ECHO_DRIVER_DONE) endef diff --git a/src/cid/cidriver.c b/src/cid/cidriver.c index 6da979b6f..0044c2196 100644 --- a/src/cid/cidriver.c +++ b/src/cid/cidriver.c @@ -230,7 +230,7 @@ FT_CALLBACK_TABLE_DEF - FT_Driver_ClassRec t1cid_driver_class = + FT_Driver_Class t1cid_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/cid/cidriver.h b/src/cid/cidriver.h index c5fecfbcf..7fc70f4be 100644 --- a/src/cid/cidriver.h +++ b/src/cid/cidriver.h @@ -26,7 +26,7 @@ FT_BEGIN_HEADER FT_CALLBACK_TABLE - FT_Driver_ClassRec t1cid_driver_class; + FT_Driver_Class t1cid_driver_class; FT_END_HEADER diff --git a/src/cid/module.mk b/src/cid/module.mk index c65a69fba..7a1815994 100644 --- a/src/cid/module.mk +++ b/src/cid/module.mk @@ -16,7 +16,7 @@ FTMODULE_H_COMMANDS += TYPE1CID_DRIVER define TYPE1CID_DRIVER -$(OPEN_DRIVER) FT_Driver_ClassRec, t1cid_driver_class $(CLOSE_DRIVER) +$(OPEN_DRIVER) FT_Driver_Class, t1cid_driver_class $(CLOSE_DRIVER) $(ECHO_DRIVER)cid $(ECHO_DRIVER_DESC)Postscript CID-keyed fonts, no known extension$(ECHO_DRIVER_DONE) endef diff --git a/src/pcf/module.mk b/src/pcf/module.mk index df383ff0f..da179d2da 100644 --- a/src/pcf/module.mk +++ b/src/pcf/module.mk @@ -27,7 +27,7 @@ FTMODULE_H_COMMANDS += PCF_DRIVER define PCF_DRIVER -$(OPEN_DRIVER) FT_Driver_ClassRec, pcf_driver_class $(CLOSE_DRIVER) +$(OPEN_DRIVER) FT_Driver_Class, pcf_driver_class $(CLOSE_DRIVER) $(ECHO_DRIVER)pcf $(ECHO_DRIVER_DESC)pcf bitmap fonts$(ECHO_DRIVER_DONE) endef diff --git a/src/pcf/pcfdrivr.c b/src/pcf/pcfdrivr.c index 0a1a12834..5545d4c63 100644 --- a/src/pcf/pcfdrivr.c +++ b/src/pcf/pcfdrivr.c @@ -793,7 +793,7 @@ THE SOFTWARE. FT_CALLBACK_TABLE_DEF - FT_Driver_ClassRec pcf_driver_class = + FT_Driver_Class pcf_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/pcf/pcfdrivr.h b/src/pcf/pcfdrivr.h index 9f044f3d5..4d831618a 100644 --- a/src/pcf/pcfdrivr.h +++ b/src/pcf/pcfdrivr.h @@ -33,7 +33,7 @@ THE SOFTWARE. FT_BEGIN_HEADER - FT_EXPORT_VAR( FT_Driver_ClassRec ) pcf_driver_class; + FT_EXPORT_VAR( FT_Driver_Class ) pcf_driver_class; FT_END_HEADER diff --git a/src/pfr/module.mk b/src/pfr/module.mk index 7df423101..7f034e6f4 100644 --- a/src/pfr/module.mk +++ b/src/pfr/module.mk @@ -16,7 +16,7 @@ FTMODULE_H_COMMANDS += PFR_DRIVER define PFR_DRIVER -$(OPEN_DRIVER) FT_Driver_ClassRec, pfr_driver_class $(CLOSE_DRIVER) +$(OPEN_DRIVER) FT_Driver_Class, pfr_driver_class $(CLOSE_DRIVER) $(ECHO_DRIVER)pfr $(ECHO_DRIVER_DESC)PFR/TrueDoc font files with extension *.pfr$(ECHO_DRIVER_DONE) endef diff --git a/src/pfr/pfrdrivr.c b/src/pfr/pfrdrivr.c index dc7e90558..ec7a2d1fa 100644 --- a/src/pfr/pfrdrivr.c +++ b/src/pfr/pfrdrivr.c @@ -168,7 +168,7 @@ FT_CALLBACK_TABLE_DEF - FT_Driver_ClassRec pfr_driver_class = + FT_Driver_Class pfr_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/pfr/pfrdrivr.h b/src/pfr/pfrdrivr.h index a07f6451b..faf60b91d 100644 --- a/src/pfr/pfrdrivr.h +++ b/src/pfr/pfrdrivr.h @@ -25,7 +25,7 @@ FT_BEGIN_HEADER - FT_EXPORT_VAR( FT_Driver_ClassRec ) pfr_driver_class; + FT_EXPORT_VAR( FT_Driver_Class ) pfr_driver_class; FT_END_HEADER diff --git a/src/truetype/module.mk b/src/truetype/module.mk index a53cb64c3..3d5c584fd 100644 --- a/src/truetype/module.mk +++ b/src/truetype/module.mk @@ -16,7 +16,7 @@ FTMODULE_H_COMMANDS += TRUETYPE_DRIVER define TRUETYPE_DRIVER -$(OPEN_DRIVER) FT_Driver_ClassRec, tt_driver_class $(CLOSE_DRIVER) +$(OPEN_DRIVER) FT_Driver_Class, tt_driver_class $(CLOSE_DRIVER) $(ECHO_DRIVER)truetype $(ECHO_DRIVER_DESC)Windows/Mac font files with extension *.ttf or *.ttc$(ECHO_DRIVER_DONE) endef diff --git a/src/truetype/ttobjs.h b/src/truetype/ttobjs.h index 0d8c8eb79..c4281502b 100644 --- a/src/truetype/ttobjs.h +++ b/src/truetype/ttobjs.h @@ -252,7 +252,7 @@ FT_BEGIN_HEADER /* Note: All of the functions below (except tt_size_reset()) are used */ - /* as function pointers in a FT_Driver_ClassRec. Therefore their */ + /* as function pointers in a FT_Driver_Class. Therefore their */ /* parameters are of types FT_Face, FT_Size, etc., rather than TT_Face, */ /* TT_Size, etc., so that the compiler can confirm that the types and */ /* number of parameters are correct. In all cases the FT_xxx types are */ diff --git a/src/type1/module.mk b/src/type1/module.mk index 97d6111cf..a1a6835d2 100644 --- a/src/type1/module.mk +++ b/src/type1/module.mk @@ -16,7 +16,7 @@ FTMODULE_H_COMMANDS += TYPE1_DRIVER define TYPE1_DRIVER -$(OPEN_DRIVER) FT_Driver_ClassRec, t1_driver_class $(CLOSE_DRIVER) +$(OPEN_DRIVER) FT_Driver_Class, t1_driver_class $(CLOSE_DRIVER) $(ECHO_DRIVER)type1 $(ECHO_DRIVER_DESC)Postscript font files with extension *.pfa or *.pfb$(ECHO_DRIVER_DONE) endef diff --git a/src/type1/t1driver.c b/src/type1/t1driver.c index b3ac4be75..5b42a9af6 100644 --- a/src/type1/t1driver.c +++ b/src/type1/t1driver.c @@ -757,7 +757,7 @@ FT_CALLBACK_TABLE_DEF - FT_Driver_ClassRec t1_driver_class = + FT_Driver_Class t1_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/type1/t1driver.h b/src/type1/t1driver.h index 14899c1d8..60faead34 100644 --- a/src/type1/t1driver.h +++ b/src/type1/t1driver.h @@ -25,7 +25,7 @@ FT_BEGIN_HEADER - FT_EXPORT_VAR( FT_Driver_ClassRec ) t1_driver_class; + FT_EXPORT_VAR( FT_Driver_Class ) t1_driver_class; FT_END_HEADER diff --git a/src/type42/module.mk b/src/type42/module.mk index 7895f48c0..a78db6960 100644 --- a/src/type42/module.mk +++ b/src/type42/module.mk @@ -16,7 +16,7 @@ FTMODULE_H_COMMANDS += TYPE42_DRIVER define TYPE42_DRIVER -$(OPEN_DRIVER) FT_Driver_ClassRec, t42_driver_class $(CLOSE_DRIVER) +$(OPEN_DRIVER) FT_Driver_Class, t42_driver_class $(CLOSE_DRIVER) $(ECHO_DRIVER)type42 $(ECHO_DRIVER_DESC)Type 42 font files with no known extension$(ECHO_DRIVER_DONE) endef diff --git a/src/type42/t42drivr.c b/src/type42/t42drivr.c index fe85a362e..2de04523b 100644 --- a/src/type42/t42drivr.c +++ b/src/type42/t42drivr.c @@ -199,7 +199,7 @@ } - FT_Driver_ClassRec t42_driver_class = + FT_Driver_Class t42_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/type42/t42drivr.h b/src/type42/t42drivr.h index a49fcb3a9..660a86e23 100644 --- a/src/type42/t42drivr.h +++ b/src/type42/t42drivr.h @@ -25,7 +25,7 @@ FT_BEGIN_HEADER - FT_EXPORT_VAR( FT_Driver_ClassRec ) t42_driver_class; + FT_EXPORT_VAR( FT_Driver_Class ) t42_driver_class; FT_END_HEADER diff --git a/src/type42/t42objs.c b/src/type42/t42objs.c index c97201ac1..19005232f 100644 --- a/src/type42/t42objs.c +++ b/src/type42/t42objs.c @@ -485,7 +485,7 @@ return FT_THROW( Missing_Module ); } - driver->ttclazz = (FT_Driver_Class)ttmodule->clazz; + driver->ttclazz = (FT_Driver_Class*)ttmodule->clazz; return FT_Err_Ok; } @@ -651,11 +651,11 @@ FT_UInt glyph_index, FT_Int32 load_flags ) { - FT_Error error; - T42_GlyphSlot t42slot = (T42_GlyphSlot)glyph; - T42_Size t42size = (T42_Size)size; - T42_Face t42face = (T42_Face)size->face; - FT_Driver_Class ttclazz = ((T42_Driver)glyph->face->driver)->ttclazz; + FT_Error error; + T42_GlyphSlot t42slot = (T42_GlyphSlot)glyph; + T42_Size t42size = (T42_Size)size; + T42_Face t42face = (T42_Face)size->face; + FT_Driver_Class* ttclazz = ((T42_Driver)glyph->face->driver)->ttclazz; FT_TRACE1(( "T42_GlyphSlot_Load: glyph index %u\n", glyph_index )); diff --git a/src/type42/t42objs.h b/src/type42/t42objs.h index 3ca83bc54..62bd4361f 100644 --- a/src/type42/t42objs.h +++ b/src/type42/t42objs.h @@ -53,8 +53,8 @@ FT_BEGIN_HEADER /* Type 42 driver */ typedef struct T42_DriverRec_ { - FT_DriverRec root; - FT_Driver_Class ttclazz; + FT_DriverRec root; + FT_Driver_Class* ttclazz; } T42_DriverRec, *T42_Driver; diff --git a/src/winfonts/module.mk b/src/winfonts/module.mk index f2d8ace2b..b623449af 100644 --- a/src/winfonts/module.mk +++ b/src/winfonts/module.mk @@ -16,7 +16,7 @@ FTMODULE_H_COMMANDS += WINDOWS_DRIVER define WINDOWS_DRIVER -$(OPEN_DRIVER) FT_Driver_ClassRec, winfnt_driver_class $(CLOSE_DRIVER) +$(OPEN_DRIVER) FT_Driver_Class, winfnt_driver_class $(CLOSE_DRIVER) $(ECHO_DRIVER)winfnt $(ECHO_DRIVER_DESC)Windows bitmap fonts with extension *.fnt or *.fon$(ECHO_DRIVER_DONE) endef diff --git a/src/winfonts/winfnt.c b/src/winfonts/winfnt.c index 43057877a..2a5b58757 100644 --- a/src/winfonts/winfnt.c +++ b/src/winfonts/winfnt.c @@ -1176,7 +1176,7 @@ FT_CALLBACK_TABLE_DEF - FT_Driver_ClassRec winfnt_driver_class = + FT_Driver_Class winfnt_driver_class = { { FT_MODULE_FONT_DRIVER | diff --git a/src/winfonts/winfnt.h b/src/winfonts/winfnt.h index 578d1b5cb..4b08df549 100644 --- a/src/winfonts/winfnt.h +++ b/src/winfonts/winfnt.h @@ -152,7 +152,7 @@ FT_BEGIN_HEADER } FNT_FaceRec, *FNT_Face; - FT_EXPORT_VAR( FT_Driver_ClassRec ) winfnt_driver_class; + FT_EXPORT_VAR( FT_Driver_Class ) winfnt_driver_class; FT_END_HEADER From e08810da82b4ddd69c440127dba9963658ea84c2 Mon Sep 17 00:00:00 2001 From: Alexei Podtelezhnikov Date: Mon, 1 Sep 2025 17:53:13 -0400 Subject: [PATCH 5/7] Remove some declare/define macros (pt 1). These macros were relics of PIC code removed some time ago. They only hid the class initializations. We make those explicit again. * include/freetype/internal/ftobjs.h (FT_DECLARE_MODULE, FT_DEFINE_MODULE, FT_DECLARE_RENDERER, FT_DEFINE_RENDERER): Removed. * include/freetype/internal/ftdrv.h (FT_DECLARE_DRIVER, FT_DEFINE_DRIVER): Removed. * src/*: Updated all former users. --- include/freetype/internal/ftdrv.h | 89 ------------------ include/freetype/internal/ftobjs.h | 145 ----------------------------- src/autofit/afmodule.c | 7 +- src/autofit/afmodule.h | 5 +- src/cff/cffdrivr.c | 12 ++- src/cff/cffdrivr.h | 3 +- src/psaux/psauxmod.c | 8 +- src/psaux/psauxmod.h | 4 +- src/pshinter/pshmod.c | 8 +- src/pshinter/pshmod.h | 5 +- src/psnames/psmodule.c | 8 +- src/psnames/psmodule.h | 5 +- src/raster/ftrend1.c | 12 ++- src/raster/ftrend1.h | 5 +- src/sdf/ftsdfrend.c | 56 +++++------ src/sdf/ftsdfrend.h | 6 +- src/sfnt/sfdriver.c | 8 +- src/sfnt/sfdriver.h | 3 +- src/smooth/ftsmooth.c | 12 ++- src/smooth/ftsmooth.h | 5 +- src/svg/ftsvg.c | 24 ++--- src/svg/ftsvg.h | 3 +- src/truetype/ttdriver.c | 12 ++- src/truetype/ttdriver.h | 3 +- 24 files changed, 117 insertions(+), 331 deletions(-) diff --git a/include/freetype/internal/ftdrv.h b/include/freetype/internal/ftdrv.h index 1ca8d45ee..8ecb877aa 100644 --- a/include/freetype/internal/ftdrv.h +++ b/include/freetype/internal/ftdrv.h @@ -192,95 +192,6 @@ FT_BEGIN_HEADER } FT_Driver_Class, FT_Driver_ClassRec; - /************************************************************************** - * - * @macro: - * FT_DECLARE_DRIVER - * - * @description: - * Used to create a forward declaration of an FT_Driver_Class struct - * instance. - * - * @macro: - * FT_DEFINE_DRIVER - * - * @description: - * Used to initialize an instance of FT_Driver_Class struct. - * - * `ftinit.c` (ft_create_default_module_classes) already contains a - * mechanism to call these functions for the default modules described in - * `ftmodule.h`. - * - * The struct will be allocated in the global scope (or the scope where - * the macro is used). - */ -#define FT_DECLARE_DRIVER( class_ ) \ - FT_CALLBACK_TABLE \ - FT_Driver_Class class_; - -#define FT_DEFINE_DRIVER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - face_object_size_, \ - size_object_size_, \ - slot_object_size_, \ - init_face_, \ - done_face_, \ - init_size_, \ - done_size_, \ - init_slot_, \ - done_slot_, \ - load_glyph_, \ - get_kerning_, \ - attach_file_, \ - get_advances_, \ - request_size_, \ - select_size_ ) \ - FT_CALLBACK_TABLE_DEF \ - FT_Driver_Class class_ = \ - { \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - \ - face_object_size_, \ - size_object_size_, \ - slot_object_size_, \ - \ - init_face_, \ - done_face_, \ - \ - init_size_, \ - done_size_, \ - \ - init_slot_, \ - done_slot_, \ - \ - load_glyph_, \ - \ - get_kerning_, \ - attach_file_, \ - get_advances_, \ - \ - request_size_, \ - select_size_ \ - }; - - FT_END_HEADER #endif /* FTDRV_H_ */ diff --git a/include/freetype/internal/ftobjs.h b/include/freetype/internal/ftobjs.h index dbf1acce5..edca62386 100644 --- a/include/freetype/internal/ftobjs.h +++ b/include/freetype/internal/ftobjs.h @@ -1101,151 +1101,6 @@ FT_BEGIN_HEADER }; - /************************************************************************** - * - * @macro: - * FT_DECLARE_RENDERER - * - * @description: - * Used to create a forward declaration of a FT_Renderer_Class struct - * instance. - * - * @macro: - * FT_DEFINE_RENDERER - * - * @description: - * Used to initialize an instance of FT_Renderer_Class struct. - * - * The struct will be allocated in the global scope (or the scope where - * the macro is used). - */ -#define FT_DECLARE_RENDERER( class_ ) \ - FT_EXPORT_VAR( FT_Renderer_Class ) class_; - -#define FT_DEFINE_RENDERER( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_, \ - glyph_format_, \ - render_glyph_, \ - transform_glyph_, \ - get_glyph_cbox_, \ - set_mode_, \ - raster_class_ ) \ - FT_CALLBACK_TABLE_DEF \ - FT_Renderer_Class class_ = \ - { \ - FT_DEFINE_ROOT_MODULE( flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - glyph_format_, \ - \ - render_glyph_, \ - transform_glyph_, \ - get_glyph_cbox_, \ - set_mode_, \ - \ - raster_class_ \ - }; - - - /************************************************************************** - * - * @macro: - * FT_DECLARE_MODULE - * - * @description: - * Used to create a forward declaration of a FT_Module_Class struct - * instance. - * - * @macro: - * FT_DEFINE_MODULE - * - * @description: - * Used to initialize an instance of an FT_Module_Class struct. - * - * The struct will be allocated in the global scope (or the scope where - * the macro is used). - * - * @macro: - * FT_DEFINE_ROOT_MODULE - * - * @description: - * Used to initialize an instance of an FT_Module_Class struct inside - * another struct that contains it or in a function that initializes that - * containing struct. - */ -#define FT_DECLARE_MODULE( class_ ) \ - FT_CALLBACK_TABLE \ - FT_Module_Class class_; - -#define FT_DEFINE_ROOT_MODULE( \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_ ) \ - { \ - flags_, \ - size_, \ - \ - name_, \ - version_, \ - requires_, \ - \ - interface_, \ - \ - init_, \ - done_, \ - get_interface_, \ - }, - -#define FT_DEFINE_MODULE( \ - class_, \ - flags_, \ - size_, \ - name_, \ - version_, \ - requires_, \ - interface_, \ - init_, \ - done_, \ - get_interface_) \ - FT_CALLBACK_TABLE_DEF \ - FT_Module_Class class_ = \ - { \ - flags_, \ - size_, \ - \ - name_, \ - version_, \ - requires_, \ - \ - interface_, \ - \ - init_, \ - done_, \ - get_interface_, \ - }; - - FT_END_HEADER #endif /* FTOBJS_H_ */ diff --git a/src/autofit/afmodule.c b/src/autofit/afmodule.c index c0ed4ad9d..87ff0c33b 100644 --- a/src/autofit/afmodule.c +++ b/src/autofit/afmodule.c @@ -516,9 +516,10 @@ af_autofitter_load_glyph /* FT_AutoHinter_GlyphLoadFunc load_glyph */ ) - FT_DEFINE_MODULE( - autofit_module_class, + FT_CALLBACK_TABLE_DEF + FT_Module_Class autofit_module_class = + { FT_MODULE_HINTER, sizeof ( AF_ModuleRec ), @@ -531,7 +532,7 @@ af_autofitter_init, /* FT_Module_Constructor module_init */ af_autofitter_done, /* FT_Module_Destructor module_done */ af_get_interface /* FT_Module_Requester get_interface */ - ) + }; /* END */ diff --git a/src/autofit/afmodule.h b/src/autofit/afmodule.h index f5a406c76..3f4d257de 100644 --- a/src/autofit/afmodule.h +++ b/src/autofit/afmodule.h @@ -50,7 +50,10 @@ FT_BEGIN_HEADER FT_DECLARE_AUTOHINTER_INTERFACE( af_autofitter_interface ) -FT_DECLARE_MODULE( autofit_module_class ) + + + FT_CALLBACK_TABLE + FT_Module_Class autofit_module_class; FT_END_HEADER diff --git a/src/cff/cffdrivr.c b/src/cff/cffdrivr.c index f432c9e4a..b3f0d176b 100644 --- a/src/cff/cffdrivr.c +++ b/src/cff/cffdrivr.c @@ -1179,9 +1179,10 @@ #define CFF_SIZE_SELECT 0 #endif - FT_DEFINE_DRIVER( - cff_driver_class, - + FT_CALLBACK_TABLE_DEF + FT_Driver_Class cff_driver_class = + { + { FT_MODULE_FONT_DRIVER | FT_MODULE_DRIVER_SCALABLE | FT_MODULE_DRIVER_HAS_HINTER | @@ -1196,7 +1197,8 @@ cff_driver_init, /* FT_Module_Constructor module_init */ cff_driver_done, /* FT_Module_Destructor module_done */ - cff_get_interface, /* FT_Module_Requester get_interface */ + cff_get_interface /* FT_Module_Requester get_interface */ + }, sizeof ( TT_FaceRec ), sizeof ( CFF_SizeRec ), @@ -1217,7 +1219,7 @@ cff_size_request, /* FT_Size_RequestFunc request_size */ CFF_SIZE_SELECT /* FT_Size_SelectFunc select_size */ - ) + }; /* END */ diff --git a/src/cff/cffdrivr.h b/src/cff/cffdrivr.h index fd5bc37ec..be6a85441 100644 --- a/src/cff/cffdrivr.h +++ b/src/cff/cffdrivr.h @@ -25,7 +25,8 @@ FT_BEGIN_HEADER - FT_DECLARE_DRIVER( cff_driver_class ) + FT_CALLBACK_TABLE + FT_Driver_Class cff_driver_class; FT_END_HEADER diff --git a/src/psaux/psauxmod.c b/src/psaux/psauxmod.c index 6826f9d8d..56f67bd67 100644 --- a/src/psaux/psauxmod.c +++ b/src/psaux/psauxmod.c @@ -170,9 +170,9 @@ }; - FT_DEFINE_MODULE( - psaux_module_class, - + FT_CALLBACK_TABLE_DEF + FT_Module_Class psaux_module_class = + { 0, sizeof ( FT_ModuleRec ), "psaux", @@ -184,7 +184,7 @@ (FT_Module_Constructor)NULL, /* module_init */ (FT_Module_Destructor) NULL, /* module_done */ (FT_Module_Requester) NULL /* get_interface */ - ) + }; /* END */ diff --git a/src/psaux/psauxmod.h b/src/psaux/psauxmod.h index 7385886b1..5a73e9f98 100644 --- a/src/psaux/psauxmod.h +++ b/src/psaux/psauxmod.h @@ -45,8 +45,8 @@ FT_BEGIN_HEADER FT_CALLBACK_TABLE const CFF_Decoder_FuncsRec cff_decoder_funcs; - - FT_DECLARE_MODULE( psaux_module_class ) + FT_CALLBACK_TABLE + FT_Module_Class psaux_module_class; FT_END_HEADER diff --git a/src/pshinter/pshmod.c b/src/pshinter/pshmod.c index 9965d5b16..0699b9198 100644 --- a/src/pshinter/pshmod.c +++ b/src/pshinter/pshmod.c @@ -106,9 +106,9 @@ ) - FT_DEFINE_MODULE( - pshinter_module_class, - + FT_CALLBACK_TABLE_DEF + FT_Module_Class pshinter_module_class = + { 0, sizeof ( PS_Hinter_ModuleRec ), "pshinter", @@ -120,6 +120,6 @@ (FT_Module_Constructor)ps_hinter_init, /* module_init */ (FT_Module_Destructor) ps_hinter_done, /* module_done */ (FT_Module_Requester) NULL /* get_interface */ - ) + }; /* END */ diff --git a/src/pshinter/pshmod.h b/src/pshinter/pshmod.h index 62ac0a60f..574a1af78 100644 --- a/src/pshinter/pshmod.h +++ b/src/pshinter/pshmod.h @@ -25,9 +25,8 @@ FT_BEGIN_HEADER - - FT_DECLARE_MODULE( pshinter_module_class ) - + FT_CALLBACK_TABLE + FT_Module_Class pshinter_module_class; FT_END_HEADER diff --git a/src/psnames/psmodule.c b/src/psnames/psmodule.c index 35d054d1c..c1d7626a2 100644 --- a/src/psnames/psmodule.c +++ b/src/psnames/psmodule.c @@ -599,9 +599,9 @@ #define PUT_PS_NAMES_SERVICE( a ) a #endif - FT_DEFINE_MODULE( - psnames_module_class, - + FT_CALLBACK_TABLE_DEF + FT_Module_Class psnames_module_class = + { 0, /* this is not a font driver, nor a renderer */ sizeof ( FT_ModuleRec ), @@ -615,7 +615,7 @@ NULL, /* FT_Module_Constructor module_init */ NULL, /* FT_Module_Destructor module_done */ PUT_PS_NAMES_SERVICE( psnames_get_service ) /* FT_Module_Requester get_interface */ - ) + }; /* END */ diff --git a/src/psnames/psmodule.h b/src/psnames/psmodule.h index 770458316..cd0ba8654 100644 --- a/src/psnames/psmodule.h +++ b/src/psnames/psmodule.h @@ -25,9 +25,8 @@ FT_BEGIN_HEADER - - FT_DECLARE_MODULE( psnames_module_class ) - + FT_CALLBACK_TABLE + FT_Module_Class psnames_module_class; FT_END_HEADER diff --git a/src/raster/ftrend1.c b/src/raster/ftrend1.c index fd9f174f2..fdc4a34e5 100644 --- a/src/raster/ftrend1.c +++ b/src/raster/ftrend1.c @@ -179,9 +179,10 @@ } - FT_DEFINE_RENDERER( - ft_raster1_renderer_class, - + FT_CALLBACK_TABLE_DEF + FT_Renderer_Class ft_raster1_renderer_class = + { + { FT_MODULE_RENDERER, sizeof ( FT_RendererRec ), @@ -193,7 +194,8 @@ ft_raster1_init, /* FT_Module_Constructor module_init */ NULL, /* FT_Module_Destructor module_done */ - NULL, /* FT_Module_Requester get_interface */ + NULL /* FT_Module_Requester get_interface */ + }, FT_GLYPH_FORMAT_OUTLINE, @@ -203,7 +205,7 @@ ft_raster1_set_mode, /* FT_Renderer_SetModeFunc set_mode */ &ft_standard_raster /* FT_Raster_Funcs* raster_class */ - ) + }; /* END */ diff --git a/src/raster/ftrend1.h b/src/raster/ftrend1.h index cf3e73c0a..6b1ff9f82 100644 --- a/src/raster/ftrend1.h +++ b/src/raster/ftrend1.h @@ -25,9 +25,8 @@ FT_BEGIN_HEADER - - FT_DECLARE_RENDERER( ft_raster1_renderer_class ) - + FT_CALLBACK_TABLE + FT_Renderer_Class ft_raster1_renderer_class; FT_END_HEADER diff --git a/src/sdf/ftsdfrend.c b/src/sdf/ftsdfrend.c index d3324678d..69e170050 100644 --- a/src/sdf/ftsdfrend.c +++ b/src/sdf/ftsdfrend.c @@ -424,21 +424,23 @@ } - FT_DEFINE_RENDERER( - ft_sdf_renderer_class, + FT_CALLBACK_TABLE_DEF + FT_Renderer_Class ft_sdf_renderer_class = + { + { + FT_MODULE_RENDERER, + sizeof ( SDF_Renderer_Module ), - FT_MODULE_RENDERER, - sizeof ( SDF_Renderer_Module ), + "sdf", + 0x10000L, + 0x20000L, - "sdf", - 0x10000L, - 0x20000L, + NULL, - NULL, - - (FT_Module_Constructor)ft_sdf_init, - (FT_Module_Destructor) ft_sdf_done, - (FT_Module_Requester) ft_sdf_requester, + (FT_Module_Constructor)ft_sdf_init, + (FT_Module_Destructor) ft_sdf_done, + (FT_Module_Requester) ft_sdf_requester + }, FT_GLYPH_FORMAT_OUTLINE, @@ -448,7 +450,7 @@ (FT_Renderer_SetModeFunc) ft_sdf_set_mode, /* set_mode */ (FT_Raster_Funcs*)&ft_sdf_raster /* raster_class */ - ) + }; /*************************************************************************/ @@ -573,21 +575,23 @@ } - FT_DEFINE_RENDERER( - ft_bitmap_sdf_renderer_class, + FT_CALLBACK_TABLE_DEF + FT_Renderer_Class ft_bitmap_sdf_renderer_class = + { + { + FT_MODULE_RENDERER, + sizeof ( SDF_Renderer_Module ), - FT_MODULE_RENDERER, - sizeof ( SDF_Renderer_Module ), + "bsdf", + 0x10000L, + 0x20000L, - "bsdf", - 0x10000L, - 0x20000L, + NULL, - NULL, - - (FT_Module_Constructor)ft_sdf_init, - (FT_Module_Destructor) ft_sdf_done, - (FT_Module_Requester) ft_sdf_requester, + (FT_Module_Constructor)ft_sdf_init, + (FT_Module_Destructor) ft_sdf_done, + (FT_Module_Requester) ft_sdf_requester + }, FT_GLYPH_FORMAT_BITMAP, @@ -597,7 +601,7 @@ (FT_Renderer_SetModeFunc) ft_sdf_set_mode, /* set_mode */ (FT_Raster_Funcs*)&ft_bitmap_sdf_raster /* raster_class */ - ) + }; /* END */ diff --git a/src/sdf/ftsdfrend.h b/src/sdf/ftsdfrend.h index 2ea6f8681..f3f9f683d 100644 --- a/src/sdf/ftsdfrend.h +++ b/src/sdf/ftsdfrend.h @@ -91,7 +91,8 @@ FT_BEGIN_HEADER * Renderer to convert @FT_Outline to signed distance fields. * */ - FT_DECLARE_RENDERER( ft_sdf_renderer_class ) + FT_CALLBACK_TABLE + FT_Renderer_Class ft_sdf_renderer_class; /************************************************************************** @@ -107,7 +108,8 @@ FT_BEGIN_HEADER * This is not a separate module, it is part of the 'sdf' module. * */ - FT_DECLARE_RENDERER( ft_bitmap_sdf_renderer_class ) + FT_CALLBACK_TABLE + FT_Renderer_Class ft_bitmap_sdf_renderer_class; FT_END_HEADER diff --git a/src/sfnt/sfdriver.c b/src/sfnt/sfdriver.c index 7133ff709..161e8ea75 100644 --- a/src/sfnt/sfdriver.c +++ b/src/sfnt/sfdriver.c @@ -1363,9 +1363,9 @@ ) - FT_DEFINE_MODULE( - sfnt_module_class, - + FT_CALLBACK_TABLE_DEF + FT_Module_Class sfnt_module_class = + { 0, /* not a font driver or renderer */ sizeof ( FT_ModuleRec ), @@ -1378,7 +1378,7 @@ NULL, /* FT_Module_Constructor module_init */ NULL, /* FT_Module_Destructor module_done */ sfnt_get_interface /* FT_Module_Requester get_interface */ - ) + }; /* END */ diff --git a/src/sfnt/sfdriver.h b/src/sfnt/sfdriver.h index 6f71489fd..1d1339651 100644 --- a/src/sfnt/sfdriver.h +++ b/src/sfnt/sfdriver.h @@ -25,7 +25,8 @@ FT_BEGIN_HEADER - FT_DECLARE_MODULE( sfnt_module_class ) + FT_CALLBACK_TABLE + FT_Module_Class sfnt_module_class; FT_END_HEADER diff --git a/src/smooth/ftsmooth.c b/src/smooth/ftsmooth.c index f0acc1ea4..92d288492 100644 --- a/src/smooth/ftsmooth.c +++ b/src/smooth/ftsmooth.c @@ -575,9 +575,10 @@ } - FT_DEFINE_RENDERER( - ft_smooth_renderer_class, - + FT_CALLBACK_TABLE_DEF + FT_Renderer_Class ft_smooth_renderer_class = + { + { FT_MODULE_RENDERER, sizeof ( FT_RendererRec ), @@ -589,7 +590,8 @@ (FT_Module_Constructor)ft_smooth_init, /* module_init */ (FT_Module_Destructor) NULL, /* module_done */ - (FT_Module_Requester) NULL, /* get_interface */ + (FT_Module_Requester) NULL /* get_interface */ + }, FT_GLYPH_FORMAT_OUTLINE, @@ -599,7 +601,7 @@ (FT_Renderer_SetModeFunc) ft_smooth_set_mode, /* set_mode */ (FT_Raster_Funcs*)&ft_grays_raster /* raster_class */ - ) + }; /* END */ diff --git a/src/smooth/ftsmooth.h b/src/smooth/ftsmooth.h index d7b61a9e6..33bce5613 100644 --- a/src/smooth/ftsmooth.h +++ b/src/smooth/ftsmooth.h @@ -25,9 +25,8 @@ FT_BEGIN_HEADER - - FT_DECLARE_RENDERER( ft_smooth_renderer_class ) - + FT_CALLBACK_TABLE + FT_Renderer_Class ft_smooth_renderer_class; FT_END_HEADER diff --git a/src/svg/ftsvg.c b/src/svg/ftsvg.c index 35788a2d8..6d6468363 100644 --- a/src/svg/ftsvg.c +++ b/src/svg/ftsvg.c @@ -326,9 +326,10 @@ #endif - FT_DEFINE_RENDERER( - ft_svg_renderer_class, - + FT_CALLBACK_TABLE_DEF + FT_Renderer_Class ft_svg_renderer_class = + { + { FT_MODULE_RENDERER, sizeof ( SVG_RendererRec ), @@ -340,16 +341,17 @@ 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 */ + PUT_SVG_MODULE( ft_svg_get_interface ) /* FT_Module_Requester get_interface */ + }, - SVG_GLYPH_FORMAT, + SVG_GLYPH_FORMAT, - 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 */ - ) + 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 */ + }; /* END */ diff --git a/src/svg/ftsvg.h b/src/svg/ftsvg.h index 623c091dc..6c7c35431 100644 --- a/src/svg/ftsvg.h +++ b/src/svg/ftsvg.h @@ -25,7 +25,8 @@ FT_BEGIN_HEADER - FT_DECLARE_RENDERER( ft_svg_renderer_class ) + FT_CALLBACK_TABLE + FT_Renderer_Class ft_svg_renderer_class; FT_END_HEADER diff --git a/src/truetype/ttdriver.c b/src/truetype/ttdriver.c index 41a21d19d..595b20cb0 100644 --- a/src/truetype/ttdriver.c +++ b/src/truetype/ttdriver.c @@ -660,9 +660,10 @@ #define TT_SIZE_SELECT 0 #endif - FT_DEFINE_DRIVER( - tt_driver_class, - + FT_CALLBACK_TABLE_DEF + FT_Driver_Class tt_driver_class = + { + { FT_MODULE_FONT_DRIVER | FT_MODULE_DRIVER_SCALABLE | TT_HINTER_FLAG, @@ -677,7 +678,8 @@ tt_driver_init, /* FT_Module_Constructor module_init */ tt_driver_done, /* FT_Module_Destructor module_done */ - tt_get_interface, /* FT_Module_Requester get_interface */ + tt_get_interface /* FT_Module_Requester get_interface */ + }, sizeof ( TT_FaceRec ), sizeof ( TT_SizeRec ), @@ -698,7 +700,7 @@ tt_size_request, /* FT_Size_RequestFunc request_size */ TT_SIZE_SELECT /* FT_Size_SelectFunc select_size */ - ) + }; /* END */ diff --git a/src/truetype/ttdriver.h b/src/truetype/ttdriver.h index 3e1cf234f..f6bcd5ea6 100644 --- a/src/truetype/ttdriver.h +++ b/src/truetype/ttdriver.h @@ -25,7 +25,8 @@ FT_BEGIN_HEADER - FT_DECLARE_DRIVER( tt_driver_class ) + FT_CALLBACK_TABLE + FT_Driver_Class tt_driver_class; FT_END_HEADER From 821e87b1ff4b35b888b1f759f806182e55f3a21f Mon Sep 17 00:00:00 2001 From: Alexei Podtelezhnikov Date: Mon, 1 Sep 2025 18:19:29 -0400 Subject: [PATCH 6/7] Remove some declare/define macros (pt 2). This removes the next set of macros remaining from the PIC support. * include/freetype/internal/ftobjs.h (FT_DECLARE_GLYPH, FT_DEFINE_GLYPH): Removed. * include/freetype/ftglyph.h (FT_Glyph_Class): Make const always. * src/*: Update all users. --- include/freetype/ftglyph.h | 10 +++---- include/freetype/internal/ftobjs.h | 37 ----------------------- src/base/ftbase.h | 7 +++-- src/base/ftglyph.c | 48 +++++++++++++++--------------- src/base/ftstroke.c | 3 +- 5 files changed, 35 insertions(+), 70 deletions(-) diff --git a/include/freetype/ftglyph.h b/include/freetype/ftglyph.h index dc1eb8873..ea7e9c141 100644 --- a/include/freetype/ftglyph.h +++ b/include/freetype/ftglyph.h @@ -66,7 +66,7 @@ FT_BEGIN_HEADER /* forward declaration to a private type */ - typedef struct FT_Glyph_Class_ FT_Glyph_Class; + typedef const struct FT_Glyph_Class_ FT_Glyph_Class; /************************************************************************** @@ -111,10 +111,10 @@ FT_BEGIN_HEADER */ typedef struct FT_GlyphRec_ { - FT_Library library; - const FT_Glyph_Class* clazz; - FT_Glyph_Format format; - FT_Vector advance; + FT_Library library; + FT_Glyph_Class* clazz; + FT_Glyph_Format format; + FT_Vector advance; } FT_GlyphRec; diff --git a/include/freetype/internal/ftobjs.h b/include/freetype/internal/ftobjs.h index edca62386..44a9c8f74 100644 --- a/include/freetype/internal/ftobjs.h +++ b/include/freetype/internal/ftobjs.h @@ -1064,43 +1064,6 @@ FT_BEGIN_HEADER }; - - /************************************************************************** - * - * @macro: - * FT_DEFINE_GLYPH - * - * @description: - * The struct will be allocated in the global scope (or the scope where - * the macro is used). - */ -#define FT_DECLARE_GLYPH( class_ ) \ - FT_CALLBACK_TABLE const FT_Glyph_Class class_; - -#define FT_DEFINE_GLYPH( \ - class_, \ - size_, \ - format_, \ - init_, \ - done_, \ - copy_, \ - transform_, \ - bbox_, \ - prepare_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_Glyph_Class class_ = \ - { \ - size_, \ - format_, \ - init_, \ - done_, \ - copy_, \ - transform_, \ - bbox_, \ - prepare_ \ - }; - - FT_END_HEADER #endif /* FTOBJS_H_ */ diff --git a/src/base/ftbase.h b/src/base/ftbase.h index f216c1df1..210037843 100644 --- a/src/base/ftbase.h +++ b/src/base/ftbase.h @@ -26,9 +26,10 @@ FT_BEGIN_HEADER - FT_DECLARE_GLYPH( ft_bitmap_glyph_class ) - FT_DECLARE_GLYPH( ft_outline_glyph_class ) - FT_DECLARE_GLYPH( ft_svg_glyph_class ) + FT_CALLBACK_TABLE + FT_Glyph_Class ft_bitmap_glyph_class, + ft_outline_glyph_class, + ft_svg_glyph_class; #ifdef FT_CONFIG_OPTION_MAC_FONTS diff --git a/src/base/ftglyph.c b/src/base/ftglyph.c index 1b5849f99..d8dd69676 100644 --- a/src/base/ftglyph.c +++ b/src/base/ftglyph.c @@ -133,9 +133,9 @@ } - FT_DEFINE_GLYPH( - ft_bitmap_glyph_class, - + FT_CALLBACK_TABLE_DEF + FT_Glyph_Class ft_bitmap_glyph_class = + { sizeof ( FT_BitmapGlyphRec ), FT_GLYPH_FORMAT_BITMAP, @@ -145,7 +145,7 @@ NULL, /* FT_Glyph_TransformFunc glyph_transform */ ft_bitmap_glyph_bbox, /* FT_Glyph_GetBBoxFunc glyph_bbox */ NULL /* FT_Glyph_PrepareFunc glyph_prepare */ - ) + }; /*************************************************************************/ @@ -263,9 +263,9 @@ } - FT_DEFINE_GLYPH( - ft_outline_glyph_class, - + FT_CALLBACK_TABLE_DEF + FT_Glyph_Class ft_outline_glyph_class = + { sizeof ( FT_OutlineGlyphRec ), FT_GLYPH_FORMAT_OUTLINE, @@ -275,7 +275,7 @@ ft_outline_glyph_transform, /* FT_Glyph_TransformFunc glyph_transform */ ft_outline_glyph_bbox, /* FT_Glyph_GetBBoxFunc glyph_bbox */ ft_outline_glyph_prepare /* FT_Glyph_PrepareFunc glyph_prepare */ - ) + }; #ifdef FT_CONFIG_OPTION_SVG @@ -495,9 +495,9 @@ } - FT_DEFINE_GLYPH( - ft_svg_glyph_class, - + FT_CALLBACK_TABLE_DEF + FT_Glyph_Class ft_svg_glyph_class = + { sizeof ( FT_SvgGlyphRec ), FT_GLYPH_FORMAT_SVG, @@ -507,7 +507,7 @@ ft_svg_glyph_transform, /* FT_Glyph_TransformFunc glyph_transform */ NULL, /* FT_Glyph_GetBBoxFunc glyph_bbox */ ft_svg_glyph_prepare /* FT_Glyph_PrepareFunc glyph_prepare */ - ) + }; #endif /* FT_CONFIG_OPTION_SVG */ @@ -521,9 +521,9 @@ /*************************************************************************/ static FT_Error - ft_new_glyph( FT_Library library, - const FT_Glyph_Class* clazz, - FT_Glyph* aglyph ) + ft_new_glyph( FT_Library library, + FT_Glyph_Class* clazz, + FT_Glyph* aglyph ) { FT_Memory memory = library->memory; FT_Error error; @@ -551,9 +551,9 @@ FT_Glyph_Copy( FT_Glyph source, FT_Glyph *target ) { - FT_Glyph copy; - FT_Error error; - const FT_Glyph_Class* clazz; + FT_Glyph copy; + FT_Error error; + FT_Glyph_Class* clazz; /* check arguments */ @@ -599,7 +599,7 @@ FT_Glyph_Format format, FT_Glyph *aglyph ) { - const FT_Glyph_Class* clazz = NULL; + FT_Glyph_Class* clazz = NULL; if ( !library || !aglyph ) return FT_THROW( Invalid_Argument ); @@ -708,7 +708,7 @@ error = FT_THROW( Invalid_Argument ); else { - const FT_Glyph_Class* clazz = glyph->clazz; + FT_Glyph_Class* clazz = glyph->clazz; if ( clazz->glyph_transform ) @@ -734,7 +734,7 @@ FT_UInt bbox_mode, FT_BBox *acbox ) { - const FT_Glyph_Class* clazz; + FT_Glyph_Class* clazz; if ( !acbox ) @@ -787,7 +787,7 @@ FT_Error error = FT_Err_Ok; FT_Glyph b, glyph; FT_BitmapGlyph bitmap = NULL; - const FT_Glyph_Class* clazz; + FT_Glyph_Class* clazz; FT_Library library; @@ -896,8 +896,8 @@ { if ( glyph ) { - FT_Memory memory = glyph->library->memory; - const FT_Glyph_Class* clazz = glyph->clazz; + FT_Memory memory = glyph->library->memory; + FT_Glyph_Class* clazz = glyph->clazz; if ( clazz->glyph_done ) diff --git a/src/base/ftstroke.c b/src/base/ftstroke.c index 8fa5f6723..0b49a19d6 100644 --- a/src/base/ftstroke.c +++ b/src/base/ftstroke.c @@ -26,7 +26,8 @@ /* declare an extern to access `ft_outline_glyph_class' globally */ /* allocated in `ftglyph.c' */ - FT_CALLBACK_TABLE const FT_Glyph_Class ft_outline_glyph_class; + FT_CALLBACK_TABLE + FT_Glyph_Class ft_outline_glyph_class; /* documentation is in ftstroke.h */ From b27dc88c4a3965256686ee74bbe3c38e555b88c5 Mon Sep 17 00:00:00 2001 From: Alexei Podtelezhnikov Date: Mon, 1 Sep 2025 23:28:07 -0400 Subject: [PATCH 7/7] Remove some declare/define macros (pt 3). * include/freetype/internal/ftobjs.h (FT_CMap_ClassRec): Make const. (FT_DECLARE_CMAP_CLASS, FT_DEFINE_CMAP_CLASS): Removed. * src/*: Update all users. --- include/freetype/internal/ftobjs.h | 33 +----------------------------- src/bdf/bdfdrivr.c | 2 +- src/cff/cffcmap.c | 16 +++++++-------- src/cff/cffcmap.h | 6 ++++-- src/pcf/pcfdrivr.c | 2 +- src/pfr/pfrcmap.c | 4 ++-- src/pfr/pfrcmap.h | 3 ++- src/psaux/t1cmap.c | 16 +++++++-------- src/psaux/t1cmap.h | 16 +++++++-------- src/winfonts/winfnt.c | 7 +++---- 10 files changed, 38 insertions(+), 67 deletions(-) diff --git a/include/freetype/internal/ftobjs.h b/include/freetype/internal/ftobjs.h index 44a9c8f74..fa0a39937 100644 --- a/include/freetype/internal/ftobjs.h +++ b/include/freetype/internal/ftobjs.h @@ -205,7 +205,7 @@ FT_BEGIN_HEADER FT_UInt32 variant_selector ); - typedef struct FT_CMap_ClassRec_ + typedef const struct FT_CMap_ClassRec_ { FT_ULong size; @@ -226,37 +226,6 @@ FT_BEGIN_HEADER } FT_CMap_ClassRec; -#define FT_DECLARE_CMAP_CLASS( class_ ) \ - FT_CALLBACK_TABLE const FT_CMap_ClassRec class_; - -#define FT_DEFINE_CMAP_CLASS( \ - class_, \ - size_, \ - init_, \ - done_, \ - char_index_, \ - char_next_, \ - char_var_index_, \ - char_var_default_, \ - variant_list_, \ - charvariant_list_, \ - variantchar_list_ ) \ - FT_CALLBACK_TABLE_DEF \ - const FT_CMap_ClassRec class_ = \ - { \ - size_, \ - init_, \ - done_, \ - char_index_, \ - char_next_, \ - char_var_index_, \ - char_var_default_, \ - variant_list_, \ - charvariant_list_, \ - variantchar_list_ \ - }; - - /* create a new charmap and add it to charmap->face */ FT_BASE( FT_Error ) FT_CMap_New( FT_CMap_Class clazz, diff --git a/src/bdf/bdfdrivr.c b/src/bdf/bdfdrivr.c index 8bb2a41bc..cc626a18a 100644 --- a/src/bdf/bdfdrivr.c +++ b/src/bdf/bdfdrivr.c @@ -187,7 +187,7 @@ THE SOFTWARE. static - const FT_CMap_ClassRec bdf_cmap_class = + FT_CMap_ClassRec bdf_cmap_class = { sizeof ( BDF_CMapRec ), bdf_cmap_init, diff --git a/src/cff/cffcmap.c b/src/cff/cffcmap.c index ea5f8ed28..0c00e4c7c 100644 --- a/src/cff/cffcmap.c +++ b/src/cff/cffcmap.c @@ -97,9 +97,9 @@ } - FT_DEFINE_CMAP_CLASS( - cff_cmap_encoding_class_rec, - + FT_CALLBACK_TABLE_DEF + FT_CMap_ClassRec cff_cmap_encoding_class_rec = + { sizeof ( CFF_CMapStdRec ), (FT_CMap_InitFunc) cff_cmap_encoding_init, /* init */ @@ -112,7 +112,7 @@ (FT_CMap_VariantListFunc) NULL, /* variant_list */ (FT_CMap_CharVariantListFunc) NULL, /* charvariant_list */ (FT_CMap_VariantCharListFunc) NULL /* variantchar_list */ - ) + }; /*************************************************************************/ @@ -209,9 +209,9 @@ } - FT_DEFINE_CMAP_CLASS( - cff_cmap_unicode_class_rec, - + FT_CALLBACK_TABLE_DEF + FT_CMap_ClassRec cff_cmap_unicode_class_rec = + { sizeof ( PS_UnicodesRec ), (FT_CMap_InitFunc) cff_cmap_unicode_init, /* init */ @@ -224,7 +224,7 @@ (FT_CMap_VariantListFunc) NULL, /* variant_list */ (FT_CMap_CharVariantListFunc) NULL, /* charvariant_list */ (FT_CMap_VariantCharListFunc) NULL /* variantchar_list */ - ) + }; /* END */ diff --git a/src/cff/cffcmap.h b/src/cff/cffcmap.h index 1dd8700cd..037e3e0ae 100644 --- a/src/cff/cffcmap.h +++ b/src/cff/cffcmap.h @@ -43,7 +43,8 @@ FT_BEGIN_HEADER } CFF_CMapStdRec; - FT_DECLARE_CMAP_CLASS( cff_cmap_encoding_class_rec ) + FT_CALLBACK_TABLE + FT_CMap_ClassRec cff_cmap_encoding_class_rec; /*************************************************************************/ @@ -56,7 +57,8 @@ FT_BEGIN_HEADER /* unicode (synthetic) cmaps */ - FT_DECLARE_CMAP_CLASS( cff_cmap_unicode_class_rec ) + FT_CALLBACK_TABLE + FT_CMap_ClassRec cff_cmap_unicode_class_rec; FT_END_HEADER diff --git a/src/pcf/pcfdrivr.c b/src/pcf/pcfdrivr.c index 5545d4c63..10fba468d 100644 --- a/src/pcf/pcfdrivr.c +++ b/src/pcf/pcfdrivr.c @@ -157,7 +157,7 @@ THE SOFTWARE. static - const FT_CMap_ClassRec pcf_cmap_class = + FT_CMap_ClassRec pcf_cmap_class = { sizeof ( PCF_CMapRec ), pcf_cmap_init, diff --git a/src/pfr/pfrcmap.c b/src/pfr/pfrcmap.c index cd701661f..12e9e829f 100644 --- a/src/pfr/pfrcmap.c +++ b/src/pfr/pfrcmap.c @@ -167,8 +167,8 @@ } - FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec - pfr_cmap_class_rec = + FT_CALLBACK_TABLE_DEF + FT_CMap_ClassRec pfr_cmap_class_rec = { sizeof ( PFR_CMapRec ), diff --git a/src/pfr/pfrcmap.h b/src/pfr/pfrcmap.h index ab7913575..77438d44a 100644 --- a/src/pfr/pfrcmap.h +++ b/src/pfr/pfrcmap.h @@ -34,7 +34,8 @@ FT_BEGIN_HEADER } PFR_CMapRec, *PFR_CMap; - FT_CALLBACK_TABLE const FT_CMap_ClassRec pfr_cmap_class_rec; + FT_CALLBACK_TABLE + FT_CMap_ClassRec pfr_cmap_class_rec; FT_END_HEADER diff --git a/src/psaux/t1cmap.c b/src/psaux/t1cmap.c index 5681c3bd0..e5a1fd478 100644 --- a/src/psaux/t1cmap.c +++ b/src/psaux/t1cmap.c @@ -136,8 +136,8 @@ } - FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec - t1_cmap_standard_class_rec = + FT_CALLBACK_TABLE_DEF + FT_CMap_ClassRec t1_cmap_standard_class_rec = { sizeof ( T1_CMapStdRec ), @@ -166,8 +166,8 @@ return 0; } - FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec - t1_cmap_expert_class_rec = + FT_CALLBACK_TABLE_DEF + FT_CMap_ClassRec t1_cmap_expert_class_rec = { sizeof ( T1_CMapStdRec ), @@ -272,8 +272,8 @@ } - FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec - t1_cmap_custom_class_rec = + FT_CALLBACK_TABLE_DEF + FT_CMap_ClassRec t1_cmap_custom_class_rec = { sizeof ( T1_CMapCustomRec ), @@ -372,8 +372,8 @@ } - FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec - t1_cmap_unicode_class_rec = + FT_CALLBACK_TABLE_DEF + FT_CMap_ClassRec t1_cmap_unicode_class_rec = { sizeof ( PS_UnicodesRec ), diff --git a/src/psaux/t1cmap.h b/src/psaux/t1cmap.h index 445e6a278..f6ae432fc 100644 --- a/src/psaux/t1cmap.h +++ b/src/psaux/t1cmap.h @@ -49,11 +49,11 @@ FT_BEGIN_HEADER } T1_CMapStdRec; - FT_CALLBACK_TABLE const FT_CMap_ClassRec - t1_cmap_standard_class_rec; + FT_CALLBACK_TABLE + FT_CMap_ClassRec t1_cmap_standard_class_rec; - FT_CALLBACK_TABLE const FT_CMap_ClassRec - t1_cmap_expert_class_rec; + FT_CALLBACK_TABLE + FT_CMap_ClassRec t1_cmap_expert_class_rec; /*************************************************************************/ @@ -76,8 +76,8 @@ FT_BEGIN_HEADER } T1_CMapCustomRec; - FT_CALLBACK_TABLE const FT_CMap_ClassRec - t1_cmap_custom_class_rec; + FT_CALLBACK_TABLE + FT_CMap_ClassRec t1_cmap_custom_class_rec; /*************************************************************************/ @@ -90,8 +90,8 @@ FT_BEGIN_HEADER /* unicode (synthetic) cmaps */ - FT_CALLBACK_TABLE const FT_CMap_ClassRec - t1_cmap_unicode_class_rec; + FT_CALLBACK_TABLE + FT_CMap_ClassRec t1_cmap_unicode_class_rec; /* */ diff --git a/src/winfonts/winfnt.c b/src/winfonts/winfnt.c index 2a5b58757..13e2f17b1 100644 --- a/src/winfonts/winfnt.c +++ b/src/winfonts/winfnt.c @@ -689,7 +689,8 @@ } - static const FT_CMap_ClassRec fnt_cmap_class_rec = + static + FT_CMap_ClassRec fnt_cmap_class = { sizeof ( FNT_CMapRec ), @@ -701,8 +702,6 @@ NULL, NULL, NULL, NULL, NULL }; - static FT_CMap_Class const fnt_cmap_class = &fnt_cmap_class_rec; - static void FNT_Face_Done( FT_Face fntface ) /* FNT_Face */ @@ -871,7 +870,7 @@ /* charmap.encoding_id = TT_MAC_ID_ROMAN; */ } - error = FT_CMap_New( fnt_cmap_class, + error = FT_CMap_New( &fnt_cmap_class, NULL, &charmap, NULL );